更新时间: 2021-03-08
# 功能描述
Token代表一个用户在融云的唯一身份标识, 客户端在使用融云即时通讯或实时音视频功能前必须连接融云服务器, 而每次连接融云服务器都需要向融云提交 Token 以便验证身份。
获取 Token 接口,是使用融云即时通讯或者实时音视频,都必须要调用的接口,也是开发者服务端 唯一必须要调用的接口。 获取 Token 即表示一个用户在融云完成注册,开发环境下注册用户上限为 100 个,生产环境下注册用户不超过 100 可免费使用,超过 100 需要开通 IM 商用版 (opens new window),达到上限时将返回错误码 2007。
# 获取流程
应用获取 Token 后,根据情况可选择在应用本地保留当前用户的 Token,同时还需要实现重新向服务器获取 Token 的代码逻辑,以避免 Token 失效,流程如下:
Token 有效期可在开发者后台进行配置,默认为永久有效。后续登录过程中,就不必再向融云请求 Token,由 App Server 直接提供之前保存过的 Token。
如果您的 App 是免登录设计,也可以将 Token 保存在 App 本地(注意保证本地数据存储安全),直接登录。
# 实现方法
# 功能接口
请求地址: https://数据中心域名/user/getToken.json
请求方法: POST
调用频率: 无限制
签名规则: 所有请求融云服务端 API 接口的请求均需要进行规则校验,详细请参考 通用 API 接口签名规则
# 参数说明
输入参数
参数 | 类型 | 必传 | 说明 |
---|---|---|---|
userId | String | 是 | 请求的用户 Id,应用内唯一标识,重复的用户 Id 将被当作为同一用户,支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 64 字节。 |
name | String | 是 | 用户名称,最大长度 128 字节。用来在 Push 推送时显示用户的名称,重新获取 Token 传入新的名称后,将覆盖之前的用户名称。 |
portraitUri | String | 否 | 用户头像 URI,最大长度 1024 字节。 由于历史原因,部分版本server sdk中该字段为必填项,若不方便提供该字段,请升级server sdk 到最新版或者传一个固定字符即可,比如:"_" |
返回结果
返回值 | 返回类型 | 说明 |
---|---|---|
code | Int | 返回码,200 为正常。 |
token | String | 用户 Token,可以保存应用内,长度在 256 字节以内,Token 中携带 IM 服务动态导航地址,开发者不需要进行处理,正常使用即可。 |
userId | String | 用户 Id,与输入的用户 Id 相同。 |
# 代码示例
Request:
POST /user/getToken.json HTTP/1.1 Host: api-cn.ronghub.com App-Key: uwd1c0sxdlx2 Nonce: 14314 Timestamp: 1408710653491 Signature: 45beb7cc7307889a8e711219a47b7cf6a5b000e8 Content-Type: application/x-www-form-urlencoded userId=jlk456j5&name=Ironman&portraitUri=http%3A%2F%2Fabc.com%2Fmyportrait.jpg
已复制
2
3
4
5
6
7
8
9
Response:
HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 {"code":200, "userId":"jlk456j5", "token":"sfd9823ihufi"}
已复制
2
3
4
# 注意事项
1、融云不管理任何用户信息,用户的注册仅需通过用户 ID 交换 Token 即可。
2、同一个用户 ID,可以多次获取 Token,在有效期内都可以正常使用,Token 超过有效期后失效,需重新获取。
3、开发者后台刷新 App Secret 后,以前获取的 Token 失效,需要用新的 App Secret 生成签名,重新获取 Token。
4、注册用户,获取 Token 时,传输的名称(name)和 头像(portraitUri),仅为移动端远程推送提醒使用,如需变更名称和头像信息,可通过重新获取 Token 进行覆盖,也可通过更新用户信息
的方法进行变更。
5、由于单聊只要知道接收方 userId,即可发送消息,强烈建议开发者注册用户时,不要使用连续的 userId,以防止被恶意利用。