差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
后一修订版 两侧同时换到之后的修订记录
im:server:basics:chatrecord [2019/09/26 08:37]
huanxinfudh [聊天记录]
im:server:basics:chatrecord [2019/11/01 06:41]
huanxinfudh [REST API]
行 197: 行 197:
 ====== REST API ====== ====== REST API ======
  
-导出聊天记录接口不是实时接口,获取成功存在一定的延时,不能够作为实时拉取消息的接口使用。目前提供两种方式来导出聊天记录,即**下载历史消息文件**和**拉取历史消息**两个接口,''​其中拉取历史消息接口为旧有接口并于2017年3月1日起停止使用,建议使用下载历史消息文件接口''​。以下所有 ​API 均需要企业管理员权限才能访问。+导出聊天记录接口不是实时接口,获取成功存在一定的延时,不能够作为实时拉取消息的接口使用。以下 API 均需要企业管理员权限才能访问。
  
 需要使用 REST API 导出聊天记录,可以通过使用文档中嵌入的[[http://​api-docs.easemob.com/​|Easemob REST API]]进行在线测试。 需要使用 REST API 导出聊天记录,可以通过使用文档中嵌入的[[http://​api-docs.easemob.com/​|Easemob REST API]]进行在线测试。
行 203: 行 203:
 ^名称^请求^描述^ ^名称^请求^描述^
 |获取历史消息文件|/​{org_name}/​{app_name}/​chatmessages/​${time}|根据请求的时间范围返回数据的文件,下载查看| |获取历史消息文件|/​{org_name}/​{app_name}/​chatmessages/​${time}|根据请求的时间范围返回数据的文件,下载查看|
-|拉取历史消息''​已停用''​|/​{org_name}/​{app_name}/​chatmessages|根据请求的时间范围实时获取历史聊天记录| 
  
  
行 294: 行 293:
 ---- ----
  
-===== 拉取历史消息 ===== 
  
-根据请求的时间范围一次性获取聊天记录,每次最多返回1000条记录。''​该接口已停用''​ 
-^名称^请求^描述^ 
-|根据 timestamp 查询聊天记录|/​{org_name}/​{app_name}/​chatmessages?​ql=select+*+where+{timestamp}|根据指定的时间范围获取历史消息| 
-|分页获取数据|/​{org_name}/​{app_name}/​chatmessages?​ql=select+*+where+{timestamp}|分页获取根据指定的时间范围获取历史消息| 
-==== 根据 timestamp 查询聊天记录 ==== 
- 
-在 URL 后面加上参数''​ql=select * where timestamp>​1403164734226''​或者''​ql=select * where timestamp<​1403164734226''​。“=”后的参数需要转义。 
-如只取最近的消息可以只用''​timestamp>​1403166586000''​,然后记录获取到的最后一条消息的 timestamp,作为下次获取时使用的 timestamp,按此方法往下查询。 
-需要导出聊天记录的,可以结合 cursor 分页来查询出所需要的聊天记录。聊天记录查询接口返回数据已经按照 timestamp 字段做了升序排序。 
-不能使用 and、or 等操作符来组成这种查询''​ql=select * where timestamp<​1403164734226 and timestamp>​1403166586000''​。 
- 
- 
-=== HTTP Request === 
- 
-^{{:​im:​server:​ready:​get.png?​nolink&​90 |}}^**/​{org_name}/​{app_name}/​chatmessages?​ql=select+*+where+{timestamp}**^ 
-请求参数中{timestamp}代表的是时间范围,详情见描述 
- 
-=== Request Headers === 
- 
-^参数^说明^ 
-|Content-Type|application/​json| 
-|Authorization|Bearer ${token}| 
- 
-=== Response Body === 
- 
-^参数^说明^ 
-|msg_id|消息ID| 
-|timestamp|消息发送时间| 
-|from|发送人username| 
-|to|接收人的username或者接收group的ID| 
-|chat_type|用来判断单聊还是群聊。chat:​ 单聊;groupchat:​ 群聊| 
-|payload|消息bodies,不同的消息类型;消息ext,自定义扩展属性等| 
- 
- 
-=== 请求示例 === 
- 
-<code php> 
-curl -X GET -i -H "​Authorization:​ Bearer YWMtxc6K0L1aEeKf9LWFzT9xEAAAAT7MNR_9OcNq-GwPsKwj_TruuxZfFSC2eIQ"​ "​https://​a1.easemob.com/​easemob-demo/​chatdemoui/​chatmessages?​ql=select+*+where+timestamp>​1403164734226"​ 
-</​code>​ 
- 
-=== 可能返回的结果示例 === 
- 
-**返回值200,表示成功返回了聊天记录文件下载地址** 
- 
-<code json> 
-{ 
- "​count"​ : 10, 
- "​cursor"​ : "​asdsdfaee", ​ 
- "​entities"​ : [ 
- { 
- } 
- ] 
-} 
-</​code>​ 
- 
-**返回值400,表示参数 ql 结构错误** 
- 
-**返回值401,表示未授权[无token、token错误、token过期]** 
- 
-如果返回结果是<​wrap em>​5xx</​wrap>​,有可能代表该接口被限流了,请稍微暂停一下并重试。详见[[im:​450errorcode:​45restastrict|接口限流说明]] 
- 
-[[http://​api-docs.easemob.com/​|使用 Easemob REST API 在线测试]] 
- 
----- 
- 
-==== 分页获取数据 ==== 
-使用 limit 参数获取数据完毕后,如果后边还有数据,会返回一个不为空的 cursor 回来,使用这个 cursor 就能进行分页获取了。 
-分页示例:根据之前获取数据返回的 cursor 继续获取后面的20条数据。在 URL 后面加上参数 cursor,ql 语句保持不变。 
-**(一分钟最多调用10次,每次 limit 最大值为1000。)** 
- 
-=== HTTP Request === 
- 
-^{{:​im:​server:​ready:​get.png?​nolink&​90 |}}^**/​{org_name}/​{app_name}/​chatmessages?​ql=select+*+where+{timestamp}**^ 
-请求参数中{timestamp}代表的是时间范围,详情见描述 
- 
-=== Request Headers === 
- 
-^参数^说明^ 
-|Content-Type|application/​json| 
-|Authorization|Bearer ${token}| 
- 
-=== Response Body === 
-在返回值中查看entities字段包含的信息 
-^参数^说明^ 
-|msg_id|消息ID| 
-|timestamp|消息发送时间| 
-|from|发送人username| 
-|to|接收人的username或者接收group的ID| 
-|chat_type|用来判断单聊还是群聊。chat:​ 单聊;groupchat:​ 群聊| 
-|payload|消息bodies,不同的消息类型;消息ext,自定义扩展属性等| 
- 
- 
-=== 请求示例 === 
- 
-<code php> 
-curl -X GET -i -H "​Authorization:​ Bearer YWMtxc6K0L1aEeKf9LWFzT9xEAAAAT7MNR_9OcNq-GwPsKwj_TruuxZfFSC2eIQ"​ "​https://​a1.easemob.com/​easemob-demo/​testapp/​chatmessages?​ql=select+*+where+timestamp>​1403164734226&​limit=20&​cursor=MTYxOTcyOTYyNDpnR2tBQVFNQWdHa0FCZ0ZHczBKN0F3Q0FkUUFRYUdpdkt2ZU1FZU9vNU4zVllyT2pqUUNBZFFBUWFHaXZJUGVNRWVPMjdMRWo5b0w4dEFB"​ 
-</​code>​ 
- 
-=== 可能返回的结果示例 === 
- 
-**返回值200,表示成功返回了聊天记录文件下载地址** 
- 
-<code json> 
-{ 
- "​count"​ : 10, 
- "​cursor"​ : "​asdsdfaee", ​ 
- "​entities"​ : [ 
- { 
- } 
- ] 
-} 
-</​code>​ 
- 
-**返回值400,表示参数 ql 结构错误** 
- 
- 
-**返回值401,表示未授权[无token、token错误、token过期]** 
- 
- 
-如果返回结果是<​wrap em>​5xx</​wrap>​,有可能代表该接口被限流了,请稍微暂停一下并重试。详见[[im:​450errorcode:​45restastrict|接口限流说明]] 
- 
-[[http://​api-docs.easemob.com/​|使用 Easemob REST API 在线测试]] 
- 
- 
----- 
-<WRAP group> 
-<WRAP half column> 
-上一页:[[im:​server:​basics:​chatroom|聊天室管理]] 
-</​WRAP>​ 
- 
-<WRAP half column> 
-下一页:[[im:​server:​basics:​fileoperation|文件上传下载]] 
-</​WRAP>​ 
-</​WRAP>​