转自简书http://www.jianshu.com/p/af6a4f630218
根据融云官方文档的服务器获取token的方法,自己也可以从客户端获取token玩一玩,但不推荐.
参考融云sever开发指南—http://www.rongcloud.cn/docs/server.html
HTTP请求示意如下:
POST /user/getToken.json HTTP/1.1
Host: api.cn.ronghub.com
App-Key: uwd1c0sxdlx2
Nonce: 14314
Timestamp: 1408706337
Signature: 890b422b75c1c5cb706e4f7921df1d94e69c17f4
Content-Type: application/x-www-form-urlencoded
Content-Length: 78
userId=jlk456j5&name=Ironman&portraitUri=http%3A%2F%2Fabc.com%2Fmyportrait.jpg
那么下面就是我们的请求代码了~
1.先加载第三方框架AFN…直接用NSURLConnection也可以…都挺麻烦.
2.POST请求
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSString *urlstr =@"https://api.cn.rong.io/user/getToken.json";
NSDictionary *dic =@{@"userId":@"填入想申请token的userId",
@"name":@"填入名字",
@"portraitUri":@"填入一个网络图片的Url"
};
NSString * timestamp = [[NSString alloc] initWithFormat:@"%ld",(NSInteger)[NSDate timeIntervalSinceReferenceDate]];
NSString * nonce = [NSString stringWithFormat:@"%d",arc4random()];
NSString * appkey = @"填写你申请的apply";
NSString * Signature = [[NSString stringWithFormat:@"%@%@%@",appkey,nonce,timestamp] sha1String];//用sha1对签名进行加密,随你用什么方法,MD5...
//以下拼接请求内容
[manager.requestSerializer setValue:appkey forHTTPHeaderField:@"App-Key"];
[manager.requestSerializer setValue:nonce forHTTPHeaderField:@"Nonce"];
[manager.requestSerializer setValue:timestamp forHTTPHeaderField:@"Timestamp"];
[manager.requestSerializer setValue:Signature forHTTPHeaderField:@"Signature"];
[manager.requestSerializer setValue:@"填入你申请的appSecret" forHTTPHeaderField:@"appSecret"];
[manager.requestSerializer setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
//开始请求
[manager POST:urlstr parameters:dic success:^(AFHTTPRequestOperation *operation, id responseObject) {
//这里你就能得到token啦~
NSLog(@"%@ %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
}];
你每提交一次,获取的token都会不一样的.
有了appkey和token你就能嘿嘿嘿了.
谢谢简书作者@JimmyLaw的分享,祝你找到如意的工作。