当前位置:网站首页>融云获取Token
融云获取Token
2022-06-21 18:54:00 【EmulateStep】
#import "AppDelegate.h"
#import <RongIMKit/RongIMKit.h>
#import <AFNetworking.h>
#import <CommonCrypto/CommonDigest.h>// 加密
// 获取token
- (void)getRCIMToken
{
AFHTTPSessionManager *manager = [AFHTTPSessionManagermanager];
// manager.requestSerializer = [AFJSONRequestSerializer serializer];
NSString *urlstr =@"https://api.cn.rong.io/user/getToken.json";
NSDictionary *dic =@{ @"userId":@"XK",
@"name":@"XKChat",
@"portraitUri":@"https://www.baidu.com/img/baidu_jgylogo3.gif"
};
NSString * timestamp = [[NSStringalloc] initWithFormat:@"%ld",(NSInteger)[NSDatetimeIntervalSinceReferenceDate]];
// NSDate *dateObc = [NSDate date];
// NSString *timestamp = [NSString stringWithFormat:@"%d",(int)[dateObc timeIntervalSince1970]];
NSString * nonce = [NSStringstringWithFormat:@"%d",arc4random()];
NSString * appkey = @"mgb7ka1nbz5cg";
NSString * Signature = [selfsha1:[NSStringstringWithFormat:@"%@%@%@",appkey,nonce,timestamp]];
//以下拼接请求内容
[manager.requestSerializersetValue:appkey forHTTPHeaderField:@"App-Key"];
[manager.requestSerializersetValue:nonce forHTTPHeaderField:@"Nonce"];
[manager.requestSerializersetValue:timestamp forHTTPHeaderField:@"Timestamp"];
[manager.requestSerializersetValue:Signature forHTTPHeaderField:@"Signature"];
[manager.requestSerializersetValue:@"x2KUyWY7WrldUc"forHTTPHeaderField:@"appSecret"];
[manager.requestSerializersetValue:@"application/x-www-form-urlencoded"forHTTPHeaderField:@"Content-Type"];
//开始请求
[manager POST:urlstr parameters:dic progress:^(NSProgress * _Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"%@", responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"%@", @"失败 ");
}];
}
// 加密
- (NSString *) sha1:(NSString *)input
{
NSData *data = [input dataUsingEncoding: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<CC_SHA1_DIGEST_LENGTH; i++) {
[output appendFormat:@"%02x", digest[i]];
}
return output;
}
边栏推荐
猜你喜欢

【微信小程序】协同工作和发布 数据绑定

How MySQL implements grouping sum

自然语言处理如何实现聊天机器人?

Pfsense configuring tinc site to site tunneling tutorial

Assembly language greedy snake and Tetris dual task design implementation details (III) -- Tetris detailed design

Flink CDC MongoDB Connector 的实现原理和使用实践

软件测试办公工具推荐-桌面日历

FM5012D小风扇集成ic方案

亿腾医药在港招股书第三次“失效”:上市实质延后,红杉等为股东

【基于合泰HT32F52352的智慧垃圾桶总结】
随机推荐
Analysis of ${} string splicing in JS
Redis 做缓存场景引发的问题
Envi classic annotation object how to recall modification and deletion of element legend scale added
Category
The 17th National University RT thread innovation special award
通过flinksql 的方式使其部分字段更新可以么?
pfSense配置TINC站点至站点隧道教程
History of the Great Game
软件测试办公工具推荐-桌面日历
How to find the desired file among thousands of files on your computer?
Netcore3.1 Ping whether the network is unblocked and obtaining the CPU and memory utilization of the server
TX9118 同步升压IC
Post Gartner webinar "nine questions on digital transformation"
Goldfish rhca memoirs: do447ansible tower navigation
Whether there are keywords in MySQL
SQL语句知识点有哪些
Influxdb optimization configuration item
Resttemplate multiple authentication information authorization
高等代数_第9章:线性映射
TX9116同步升压ic