iOS融云获取Token问题,献给iOS融云新手!

#import "ViewController.h"
#import "AFHTTPRequestOperationManager.h"
#import  

#define AppKey @"你应用的Appkey"
#define AppSecret  @"你应用的Appsecret"
@implementation ViewController
- (void)viewDidLoad {
    [superviewDidLoad];
    AFHTTPRequestOperationManager *nManage = [AFHTTPRequestOperationManagermanager];
    nManage.responseSerializer = [[AFHTTPResponseSerializeralloc]init];
    //    随机数,无长度限制
    NSString *Nonce = [NSStringstringWithFormat:@"%d",arc4random()];
    //    以1970/01/01 GMT为基准时间,返回实例保存的时间与1970/01/01 GMT的时间间隔
    NSDate *dateObc = [NSDatedate];
    NSString *Timestamp = [NSStringstringWithFormat:@"%d",(int)[dateObctimeIntervalSince1970]];
    //    将系统分配的 AppSecret、Nonce (随机数)、Timestamp (时间戳)三个字符串按先后顺序拼接成一个字符串并进行 SHA1哈希计算
    NSString *Signature = [selfsha1:[NSStringstringWithFormat:@"%@%@%@",AppSecret,Nonce,Timestamp]];
    
    //    每次请求 API接口时,均需要提供 4个 HTTP Request Header
    [nManage.requestSerializersetValue:AppKeyforHTTPHeaderField:@"App-Key"];
    [nManage.requestSerializersetValue:NonceforHTTPHeaderField:@"Nonce"];
    [nManage.requestSerializersetValue:TimestampforHTTPHeaderField:@"Timestamp"];
    [nManage.requestSerializersetValue:SignatureforHTTPHeaderField:@"Signature"];
    
    //    表单参数
    NSMutableDictionary *parameter = [NSMutableDictionarydictionary];
    parameter[@"userId"] =@"10101011";
    parameter[@"name"] =@"张三";
    parameter[@"portraitUri"] =@"https://www.baidu.com/img/baidu_jgylogo3.gif";
    
    [nManage POST:@"https://api.cn.rong.io/user/getToken.json"parameters:parametersuccess:^(AFHTTPRequestOperation *operation,id responseObject) {
             NSDictionary *dic =  [NSJSONSerializationJSONObjectWithData:responseObjectoptions:0error:nil];
             NSLog(@"-----UserInfomation---%@",dic);
    } failure:^(AFHTTPRequestOperation *operation,NSError *error) {
            NSLog(@"-----%@---",error);
    }];
}

/*使用下面方法需要导入 CommonCrypto/CommonDigest.h*/
//  哈希计算
- (NSString *) sha1:(NSString *)input
{
    NSData *data = [inputdataUsingEncoding:NSUTF8StringEncoding];
    
    uint8_t digest[CC_SHA1_DIGEST_LENGTH];
    
    CC_SHA1(data.bytes, (unsignedint)data.length, digest);
    
    NSMutableString *output = [NSMutableStringstringWithCapacity:CC_SHA1_DIGEST_LENGTH *2];
    
    for(int i=0; i

你可能感兴趣的:(iOS,融云)