差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 后一修订版 两侧同时换到之后的修订记录 | ||
im:server:ready:user [2018/12/25 07:20] she |
im:server:ready:user [2019/03/11 04:16] she |
||
---|---|---|---|
行 9: | 行 9: | ||
==== Appkey 数据结构 ==== | ==== Appkey 数据结构 ==== | ||
- | 当您申请了 AppKey 后,会得到一个 **xxxx#xxxx** 格式的字符串,字符串只能由小写字母数字组成,AppKey是环信应用的唯一标识。前半部分 **org_name** 是在多租户体系下的唯一租户标识,后半部分 **app_name** 是租户下的app唯一标识(在环信后台创建一个app时填写的应用 id 即是 app_name )。下述的 REST API 中,**/{org_name}/{app_name}**的请求,均是针对一个唯一的appkey进行的。目前环信注册的appkey暂不能由用户自己完成删除操作,创建后如果需要删除,需要联系环信技术支持。 | + | 当您申请了 AppKey 后,会得到一个 **xxxx#xxxx** 格式的字符串,字符串只能由小写字母数字组成,AppKey是环信应用的唯一标识。前半部分 **org_name** 是在多租户体系下的唯一租户标识,后半部分 **app_name** 是租户下的app唯一标识(在环信后台创建一个app时填写的应用 id 即是 app_name )。下述的 REST API 中,**/{org_name}/{app_name}**的请求,均是针对一个唯一的appkey进行的。目前环信注册的appkey暂不能由用户自己完成删除操作,如果对 APP 删除需要联系环信操作完成。 |
^Appkey ^xxxx ^分隔符 ^xxxx^ | ^Appkey ^xxxx ^分隔符 ^xxxx^ | ||
行 1608: | 行 1608: | ||
^名称^请求^描述^ | ^名称^请求^描述^ | ||
|获取用户在线状态|/{org_name}/{app_name}/users/{username}/status|查看一个用户的在线状态| | |获取用户在线状态|/{org_name}/{app_name}/users/{username}/status|查看一个用户的在线状态| | ||
+ | |批量获取用户在线状态|/{org_name}/{app_name}/users/batch/status|批量查看用户的在线状态| | ||
|获取离线消息数|/{org_name}/{app_name}/users/{owner_username}/offline_msg_count|获取一个 IM 用户的离线消息数 | | |获取离线消息数|/{org_name}/{app_name}/users/{owner_username}/offline_msg_count|获取一个 IM 用户的离线消息数 | | ||
|获取离线消息的状态|/{org_name}/{app_name}/users/{username}/offline_msg_status/{msg_id}|通过离线消息的 ID 查看用户的该条离线消息状态| | |获取离线消息的状态|/{org_name}/{app_name}/users/{username}/offline_msg_status/{msg_id}|通过离线消息的 ID 查看用户的该条离线消息状态| | ||
行 1682: | 行 1683: | ||
[[http://api-docs.easemob.com/|使用 Easemob REST API 在线测试]] | [[http://api-docs.easemob.com/|使用 Easemob REST API 在线测试]] | ||
+ | ---- | ||
+ | ==== 批量获取用户在线状态 ==== | ||
+ | 批量查看用户的在线状态,最大同时查看100个用户。<wrap em>当前接口暂未开通</wrap> | ||
+ | |||
+ | === HTTP Request === | ||
+ | |||
+ | ^{{:im:server:ready:get.png?nolink&90|}}^**/{org_name}/{app_name}/users/batch/status**^ | ||
+ | |||
+ | === Request Headers === | ||
+ | |||
+ | ^参数^说明^ | ||
+ | |Content-Type|application/json| | ||
+ | |Authorization|Bearer ${token}| | ||
+ | |||
+ | === Request Body === | ||
+ | |||
+ | ^参数^说明^ | ||
+ | |usernames|“user1”, “user2”,需要查询状态的用户名以数组方式提交,<wrap em>最多不能超过100个</wrap>| | ||
+ | |||
+ | === Response Body === | ||
+ | |||
+ | 在返回值中查看data字段包含的信息 | ||
+ | |||
+ | ^参数^说明^ | ||
+ | |username|会显示为“user1”对应就是查询的username,“offline”代表离线,“online”在表用户当前在线| | ||
+ | |||
+ | === 请求示例 === | ||
+ | |||
+ | <code php> | ||
+ | curl -X GET -H | ||
+ | </code> | ||
+ | |||
+ | === 可能返回的结果示例 === | ||
+ | |||
+ | **返回值200,表示查询用户状态成功** | ||
+ | |||
+ | <code json> | ||
+ | { | ||
+ | "action": "get", | ||
+ | "uri": "http://a1.easemob.com/easemob-demo/testapp/users/user1/status", | ||
+ | "entities": [], | ||
+ | "data": { | ||
+ | "user1": "offline" | ||
+ | }, | ||
+ | "timestamp": 1542601284531, | ||
+ | "duration": 4, | ||
+ | "count": 0 | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | **返回值401,表示未授权[无token、token错误、token过期]** | ||
+ | <code json> | ||
+ | { | ||
+ | "error": "unauthorized", | ||
+ | "timestamp": 1542601375113, | ||
+ | "duration": 0, | ||
+ | "exception": "org.apache.shiro.authz.UnauthorizedException", | ||
+ | "error_description": "Subject does not have permission [applications:get:8be024f0-e978-11e8-b697-5d598d5f8402:/users/4759aa70-eba5-11e8-925f-6fa0510823ba]" | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | 如果返回结果是<wrap em>429、503</wrap>或者其他<wrap em>5xx</wrap>,有可能代表该接口被限流了,请稍微暂停一下并重试;或者或者请求的用户数大于100,请重新发送正确数量的请求。详见[[im:server:help:restastrict|接口限流说明]] | ||
+ | |||
+ | |||
---- | ---- | ||
行 1756: | 行 1821: | ||
[[http://api-docs.easemob.com/|使用 Easemob REST API 在线测试]] | [[http://api-docs.easemob.com/|使用 Easemob REST API 在线测试]] | ||
---- | ---- | ||
+ | |||
==== 获取某条离线消息状态 ==== | ==== 获取某条离线消息状态 ==== |