目录
权限说明:
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-自适应模式。详见拉取模式 |
返回结果:
{
"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 |
同一企业并发限制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 |