聊聊iOS做融云时重要的一步,获取token。token应该从服务端拿这样你的appSecret就不容易暴露。但有时开发需要也要自己先获取一个token也是可以的。请求方式有很多随你便喽,C哥(“我”自称)用的是AFN,记着安融云文档上来是POST请求,需要自己提供一些参数,有的参数是从融云控制平台得到的比如appkey,下面是我的代码

- (void)getIMToken {

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

NSString *urlstr =@"https://api.cn.rong.io/user/getToken.json";

NSDictionary *dic =@{@"userId":@"你想要的账号,字母或数字都行",

@"name":@"随便起一个名字吧",

@"portraitUri":@"http://pic6.huitu.com/res/20130116/84481_20130116142820494200_1.jpg,前面的是我随便找的图片你可以替换"

};

//这几句是按融云的提示写的

NSString * timestamp = [[NSString alloc] initWithFormat:@"%ld",(NSInteger)[NSDate timeIntervalSinceReferenceDate]];

NSString * nonce = [NSString stringWithFormat:@"%d",arc4random()];

NSString * appkey = @"你的appkey,从你的控制台得到";

NSString *SignatureWillMD5 = [NSString stringWithFormat:@"%@%@%@",appkey,nonce,timestamp];//这个要加密

NSString *Signature = [self MD5String:ppp]; //C哥是做了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:@"6KQHFraKVNpR" 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) {

}];

}

//MD5加密,要导入#import <CommonCrypto/CommonDigest.h>。

- (NSString *)MD5String:(NSString *)str {

const char *cStr = [str UTF8String];

unsigned char result[16];

CC_MD5(cStr, (CC_LONG)strlen(cStr), result); // This is the md5 call

NSString * md5Str = [NSString stringWithFormat:

@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",

result[0], result[1], result[2], result[3],

result[4], result[5], result[6], result[7],

result[8], result[9], result[10], result[11],

result[12], result[13], result[14], result[15]

];

CGLog(@"%@",md5Str);

return md5Str;

}

ios 获取融云token的更多相关文章

  1. iOS开发融云即时通讯集成详细步骤

    1.融云即时通讯iOS SDK下载地址   http://rongcloud.cn/downloads  选择iOS   SDK下载 2.进行应用开发之前,需要先在融云开发者平台创建应用,如果您已经注 ...

  2. iOS:融云即时通讯快速集成

    一.介绍 即时通讯在众多社交软件.生活软件以及教育软件中已经是必备的功能了,在当前国内,即时通讯SDK做的比较不错的有那么几家,例如环信SDK.融云SDK...,这两家做的都很不错,各有千秋吧,要是真 ...

  3. 安卓接入融云IM连接不上??

    融云初始化失败?融云连接失败??连接回调方法不执行???不可能的,就那么几行代码,怎么会有错. 1.项目gradle里添加融云maven仓库 maven {url "https://dl.b ...

  4. nodejs向远程服务器发送post请求----融云Web SDK/客户端获取token

    最近要用到一个叫融云的及时通讯的SDK,在获取token这个步骤的时候有点卡顿,以防以后碰到类似的问题,再此记录一下. 客户端通过融云 SDK 每次连接服务器时,都需要向服务器提供 Token,以便验 ...

  5. 融云SDK:获取用户Token的方法

    融云SDK查看ServerAPI里面有个获取Token的方法,本以为只要传三个参数就可以.后来发现,在请求头有几个必须要传的参数,否则服务器返回401(未授权).拿获取Token接口为例子 如图所示, ...

  6. ios开发之 -- 5分钟集成融云的客服功能

    最近项目中遇到了客服的功能,首先想到的就是使用融云的功能,因为以前做的即时通讯的项目,用的都是融云的sdk,花了点时间研究了下,希望能帮到大家! 废话不多说,步骤如下: 一.申请融云账号 二.创建应用 ...

  7. iOS消息体系架构详解-融云即时通讯云

    iOS SDK 体系架构 本文档将详细介绍融云的 SDK 产品架构和消息体系,以便于您更深入的了解融云并更快速的开发自己的产品. 融云 SDK 系统架构 IMKit IMKit 的功能主要是封装各种界 ...

  8. apicloud+融云实现即时通讯

    请尊重作者的辛勤劳动!!! 使用apicloud开发已经快2个月了,起初的目的就是为了实现安卓和苹果的兼容,属于一个试验项目,究竟apicloud是否能够满足公司的要求?最 终看来还是不错的,使用ap ...

  9. APICloud平台的融云2.0集成

    融云2.0的官方文档地址:http://docs.apicloud.com/端API/开放SDK/rongCloud2 项目须要IM模块,最后还是选择了融云.在iOS原生开发中,融云sdk集成了聊天界 ...

随机推荐

  1. struts2注解redirect传递参数解决方案时,中国的垃圾问题

    struts2注解redirect传递参数解决方案时,中国的垃圾问题 试过很多方法  tomcat 编码  .字符串转换 .URLEncoder  .. 但是,没有解决方案,然后仔细阅读   stru ...

  2. SQL Server相似度比较函数

    原文:SQL Server相似度比较函数 相似度函数 概述    最近有人问到关于两个字段求相似度的函数,所以就写了一篇关于相似度的函数,分别是“简单的模糊匹配”,“顺序匹配”,“一对一位置匹配”.在 ...

  3. FluentMigrator

    开源DataBase组件:FluentMigrator 2012-05-27 19:09 by 破狼, 2211 阅读, 4 评论, 收藏, 编辑 今天将介绍一款开源组件FluentMigrator, ...

  4. Android从无知到有知——NO.4

    因为我们做的是手机安全卫士,因此,我们需要一个地图定位功能,些相关的项目,也有一些教程.到百度官方下载了相关的jar包和API,但自己建项目的时候却不是那么顺利,bug不断,弄得心烦意乱,最后最终臣服 ...

  5. Ubuntu加上一个命令搜索路径/etc/ environment

    编辑~/.bashrc文件,然后在最后加上你想设置的目录就可以了. 这样做之后就可以在终端中执行你想要的程序了,不过如果你使用其它程序在后台调用的话可能还是会调用不到,因为这个设置是针对bash有效的 ...

  6. 点击按钮,通过JS代码实现复制INPUT表单,表格:

    获取表单: <SCRIPT LANGUAGE="JavaScript"> function copyinput() { var input=document.getEl ...

  7. 制作iis自动安装包

    原文:制作iis自动安装包 MS 一直没有提供可独立安装的 IIS 安装包,Windows 的缺省安装没有安装它,通常要到控制面板的"添加/删除 Windows 程序"中去选择安装 ...

  8. Effective C++ Item 46 当需要投你非成员函数定义模板

    本文senlie原版的,转载请保留此地址:http://blog.csdn.net/zhengsenlie 经验:当我们编写一个 class template, 而它所提供之"与此 temp ...

  9. MVC无刷新分页

    MVC无刷新分页(即局部刷新,带搜索,页数选择,排序功能)   我查看了很多网站,大部分评论分页都是局部刷新的,可大部分电商商品展示分页都是有刷新页面的,于是我便做了一个商品展示无刷新分页的例子.接下 ...

  10. [翻译]初识SQL Server 2005 Reporting Services Part 3

    原文:[翻译]初识SQL Server 2005 Reporting Services Part 3 这是关于SSRS文章中四部分的第三部分.Part 1提供了一个创建基本报表的递阶教程.Part 2 ...