目录
权限说明:
1.消息发送者或者接收者必须在企业会话内容授权范围内
2. 只可获取5天内的企业客户会话记录数据
3. 一次拉取调用上限1000条会话记录,可以通过分页拉取的方式来依次拉取
| 应用类型 | 权限要求 |
|---|---|
| 自建应用 | 需具备「数据与智能专区权限」 |
| 代开发应用 | 需具备「数据与智能专区权限」 |
| 第三方应用 | 需具备「数据与智能专区权限」 |
拉取模式:
该接口提供三种消息拉取模式,开发者可以按需求选择
| 模式 | 说明 |
|---|---|
| 默认模式 | 每次请求返回一批消息列表详情msg_list。由于请求的cursor依赖上一个请求返回的next_cursor,该模式下无法通过提高并发来提升吞吐量,适用于消息没有特别大的大部分企业。 |
| 预分页模式 | 请求不直接返回msg_list,而是返回一批page_id,开发者再并发调用page_id获取消息列表接口获取消息列表,以达到更大的吞吐量 |
| 自适应模式 | "预分页模式"在消息量大的时候可以提升吞吐量,但是在非高峰期即使消息量不多也需要两次sdk调用。因此提供该模式,如果当前的消息数量在一个分页就能返回完整,那就返回msg_list字段,否则返回page_id_list |
请求方法
通过SDK调用,具体方式参考专区程序使用指引。
请求接口名:
sync_msg
请求包体:
{
"cursor":"RMTJID",
"token":"NGEJKGOEGJKOEGNEOAGOEGOKEGHOEEEEE",
"limit":200,
"mode": 0
}
参数说明:
| 参数 | 是否必须 | 说明 |
|---|---|---|
| cursor | 否 | 上一次调用时返回的next_cursor,第一次拉取可以不填。若不填,从5天内最早的消息开始返回。不多于128字节 |
| token | 否 | 回调事件返回的 token 字段,10分钟内有效;建议都从回调事件中取出token填上,否则接口会有严格的频率限制。不多于128字节。参考:产生会话回调通知 |
| limit | 否 | 拉取数量,默认值200,最大值1000 |
| mode | 否 | 消息拉取模式。0:默认模式;1-预分页模式;2-自适应模式。详见拉取模式 |
| begin_time | 否 | 仅用于需要重新拉取数据而不清楚具体cursor的场景,正常情况不应该使用该字段。 若该字段有值,会从begin_time附近的数据开始返回。 |
返回结果:
{
"errcode":0,
"errmsg":"ok",
"has_more":1,
"next_cursor":"JGNLGEHJGIE",
"msg_list":[
{
"msgid":"xxxmsgid",
"sender":{
"type":1,
"id":"woxxxxxmmgjiegjie"
},
"receiver_list": [
{
"type": 1,
"id": "woAAAAAAAAAAA"
},
{
"type": 2,
"id": "wmXXXXXXXXXXXXX"
}
],
"chatid": "wrXXXXXXXXXX",
"send_time":166666666,
"msgtype":2,
"service_encrypt_info":{
"encrypted_secret_key":"KEYAAAAAAABBBBBB",
"public_key_ver":1
},
"extra_info": {
"call_duration": 10
}
}
],
"page_id_list": [
"PAGEID1",
"PAGEID2",
"PAGEID3"
]
}
参数说明:
| 参数 | 说明 |
|---|---|
| errcode | 错误码 |
| errmsg | 错误码说明 |
| has_more | 是否还有更多数据。0-否;1-是。 |
| next_cursor | 下次调用带上该值,则从当前的位置继续往后拉,以实现增量拉取。强烈建议对该字段入库保存,每次请求读取带上,请求结束后更新。避免因意外丢,导致必须从头开始拉取,引起消息延迟。 |
| msg_list | 消息列表,按消息发送时间升序排序 |
| msgid | 每条消息对应的msgid |
| sender.type | 消息发送者身份类型。1:员工;2:外部联系人; 3:机器人 |
| sender.id | 消息发送者的id,当消息发送者为员工时,该字段为员工的userid;当消息发送者的身份为外部联系人时,该字段为外部联系人的id |
| chatid | 群ID,当消息是群消息的时候会返回该字段 |
| receiver_list | 消息接收者列表。当自己发给自己消息时该字段为发送者ID,其他情况不包含发送者 |
| receiver_list.type | 消息接收者的身份类型。1:员工;2:外部联系人; 3:机器人 |
| receiver_list.id | 当接收者身份类型为员工时,该字段为员工userid;当接收者身份类型为外部联系人时,该字段为外部联系人id;当接收者身份类型为机器人式为机器人ID |
| send_time | 消息发送时间对应的unix时间戳 |
| msgtype | 消息类型。枚举值定义见下方消息类型 |
| service_encrypt_info.encrypted_secret_key | 加密后的密钥,使用设置公钥设置的公钥进行加密,需要应用后台用私钥解密后,才可在其他接口使用,例如模型分析接口等) |
| service_encrypt_info.public_key_ver | 公钥版本号 |
| extra_info.call_duration | 通话时长,单位秒。仅当消息类型为“音视频通话”或“音频存档”时返回 |
| page_id_list | 消息分页ID,当拉取模式为1或2时返回,再通过并发调用page_id获取消息列表获取消息列表。一次请求至多返回10个page_id,每个page_id可以获取最多limit条消息 |
消息类型
| 类型 | 说明 |
|---|---|
| 0 | 暂不支持的消息类型 |
| 1 | 文本 |
| 2 | 图片 |
| 3 | 表情 |
| 4 | 链接 |
| 5 | 小程序 |
| 6 | 语音 |
| 7 | 视频 |
| 8 | 文件 |
| 9 | 名片 |
| 10 | 转发消息 |
| 11 | 视频号 |
| 12 | 日程 |
| 13 | 红包 |
| 14 | 地理位置 |
| 15 | 快速会议 |
| 16 | 待办 |
| 17 | 投票 |
| 18 | 在线文档 |
| 19 | 图文消息 |
| 20 | 图文混合消息 |
| 21 | 音频存档 |
| 22 | 音视频通话 |
| 23 | 微盘文件 |
| 24 | 同意会话存档 |
| 25 | 拒绝会话存档 |
| 26 | 群接龙 |
| 27 | markdown |
| 28 | 笔记 |
同一企业并发限制10
请求方法
通过SDK调用,具体方式参考专区程序使用指引。
请求接口名:
get_msg_list_by_page_id
请求包体:
{
"page_id": "PAGEID"
}
参数说明:
| 参数 | 是否必须 | 说明 |
|---|---|---|
| page_id | 是 | sync_msg返回 |
返回结果:
{
"errcode":0,
"errmsg":"ok",
"msg_list":[
]
}
参数说明:
| 参数 | 说明 |
|---|---|
| errcode | 错误码 |
| errmsg | 错误码说明 |
| msg_list | 消息列表,字段详细描述见sync_msg |
