发送流式消息(V2版本)

最近更新时间:2026-03-18 10:32:42

我的收藏

接口调用说明

App 管理员可以通过该接口给用户发送流式消息。用户转人工后,人工客服也能看到该消息。V2版本的流式消息最大支持128KB的消息大小,可以满足长文本的流式输出需求。

请求 URL 示例

https://console.tim.qq.com/v4/desk_http_svc/send_stream_msg_v2?sdkappid=88888888&identifier=admin&usersig=xxx&random=99999999&contenttype=json

请求参数说明

下表仅列出调用本接口时涉及修改的参数及其说明,更多参数详情请参见 REST API 简介
参数
说明
v4/desk_http_svc/send_stream_msg_v2
请求接口。
sdkappid
创建应用时即时通信 IM 控制台分配的 SDKAppID。
identifier
必须为 App 管理员账号,更多详情请参见 App 管理员
usersig
App 管理员账号生成的签名,具体操作请参见 生成 UserSig
random
请输入随机的32位无符号整数,取值范围0 - 4294967295。
contenttype
请求格式固定值为json

接口限制

消息大小 < 128KB。
终止规则:流式消息一旦终止,该流式消息的后续请求将被拒绝。
分片间隔限制:每次分片之间的最长间隔不能超过 15 秒,超时后流式消息会自动结束
调用频率:后台接口限制了每条消息的续流频率为5次/秒。建议使用缓冲逻辑,而非每个字符都立即调用接口,推荐每 200 毫秒调用一次。
此接口暂时只支持国内调用。
新版的流式消息用户端 UIKit 需要更新到1.7.0版本及以上。

请求包示例

首次调用:
{
"SessionId": "fd8a2e30-54de-4e40-bcaf-02718409c5cf", //标识会话的ID
"MsgBody": [
{
"MsgType": "TIMStreamElem", //消息类型
"MsgContent": {
"CompatibleText": "当前版本过低,请升级后查看流式消息",
"Chunks": [
{
"EventType": "data",
"Index": 1, // 消息Chunk索引, 从1开始严格递增
"Markdown": "您好,这是流式消息的第一个分片", // 消息内容
"IsLast": false // 是否为最后一个chunk
}
]
}
}
],
"CloudCustomData": "your cloud custom data"
}
首次响应:
{
"ActionStatus": "OK",
"ErrorInfo": "",
"ErrorCode": 0,
"MsgKey": "k696185682_1772184822_8_1600045926_test_heart4@customer_service_account" //返回的消息标识,后续调用需要传递此参数
}
后续调用追加文本:
{
"SessionId": "fd8a2e30-54de-4e40-bcaf-02718409c5cf", //标识会话的ID
"MsgBody": [
{
"MsgType": "TIMStreamElem",
"MsgContent": {
"CompatibleText": "当前版本过低,请升级后查看流式消息",
"Chunks": [
{
"EventType": "data",
"Index": 2, // 消息Chunk索引, 从1开始严格递增
"Markdown": "您好,这是流式消息的第二个分片",
"IsLast": false
}
]
}
}
],
"MsgKey": "k696185682_1772184822_8_1600045926_test_heart4@customer_service_account" // 后续调用需要带上返回的MsgKey
}
最后一次调用:
{
"SessionId": "fd8a2e30-54de-4e40-bcaf-02718409c5cf", //标识会话的ID
"MsgBody": [
{
"MsgType": "TIMStreamElem",
"MsgContent": {
"CompatibleText": "当前版本过低,请升级后查看流式消息",
"Chunks": [
{
"EventType": "data",
"Index": 10, // Index 要严格递增
"Markdown": "您好,这是流式消息的最后一个分片",
"IsLast": true // 最后一个分片标志
}
]
}
}
],
"MsgKey": "k696185682_1772184822_8_1600045926_test_heart4@customer_service_account"

}

请求包字段说明

字段
类型
属性
说明
SessionId
String
必填
会话 ID。
MsgBody
Array
必填
消息内容,必须包含 TIMStreamElem 类型的消息元素。
MsgType
String
必填
流式消息必须为 TIMStreamElem。
MsgContent
Object
必填
流式消息内容对象,详见下文 StreamMsgContent 结构。
CloudCustomData
String
选填
消息自定义数据,具体请参见 CloudCustomData。业务可填充自定义可解析的相关数据。
MsgKey
String
选填
流式消息标识,首次调用 API 时不填,从第二次开始调用需要填写。

StreamMsgContent字段说明

字段
类型
属性
说明
CompatibleText
String
选填
用于系统兼容,设置提示文本,默认值为“当前版本过低,请升级后查看流式消息”。
Chunks
Array
必填
流式消息分片数组,详见下文 StreamChunk 结构。

StreamChunk字段说明

字段
类型
属性
说明
EventType
String
必填
分片类型:
data:AI 回复流式内容或普通数据。
这里目前仅支持 data类型。
Index
Integer
必填
分片索引,从1开始,严格递增。
Markdown
String
选填
流式 Markdown 内容,不填时内容为空。
IsLast
Boolean
必填
是否为最后一个分片;最后一个分片 IsLast=true

应答包体示例

{
"ActionStatus": "OK",
"ErrorInfo": "",
"ErrorCode": 0,
"MsgKey": "k696185682_1772184822_8_1600045926_test_heart4@customer_service_account" //返回的消息标识,后续调用需要传递此参数
}

应答包字段说明

字段
类型
说明
ErrorCode
Integer
错误码:
0表示成功。
非0表示失败。
ErrorInfo
String
错误信息。
ActionStatus
String
请求处理的结果。
MsgKey
String
返回消息的唯一标识,用于后续文本输出。首次调用时无需填写,后续调用时需要填写。

错误码说明

除非发生网络错误(例如502错误),否则该接口的 HTTP 返回码均为200。真正的错误码,错误信息是通过应答包体中的 ErrorCode、ErrorInfo 来表示的。
公共错误码(60000到79999)参见 错误码 文档。
本 API 私有错误码如下:
错误码
描述
90300
流式消息格式错误。
90306
MsgKey 解析失败。
90308
UserSig 或 A2 无效。
90309
服务器内部错误。
90310
JSON 格式解析失败。
90311
MsgBody 格式错误。
90312
MsgBody 不是数组类型。
90315
请求频率超限。
90316
chunk已经发送成功,请勿重复发送。
141000
非智能客服的应用不允许调用此接口。
141002
系统内部错误,请重试。
141004
请求参数非法,请检查后重试。
141005
该会话不存在。
141006
SessionID 非法。