一、功能说明
App 管理员可以通过该接口发送自定义消息。
二、请求参数说明
下表仅列出调用本接口时涉及修改的参数及其说明,更多参数详情请参见 REST API 简介。
| 参数 | 说明 |
| xxxxxx | SDKAppID 所在国家/地区对应的专属域名:中国:console.tim.qq.com新加坡:adminapisgp.im.qcloud.com硅谷:adminapiusa.im.qcloud.com雅加达:adminapiidn.im.qcloud.com |
| v4/live_engine_http_srv/send_custom_msg | 请求接口。 |
| sdkappid | 创建应用时即时通信 IM 控制台分配的 SDKAppID。 |
| identifier | 必须为 App 管理员账号,更多详情请参见 App 管理员。 |
| usersig | App 管理员账号生成的签名,具体操作请参见 生成 UserSig。 |
| random | 请输入随机的32位无符号整数,取值范围0 – 4294967295。 |
| contenttype | 请求格式固定值为 json。 |
三、最高调用频率
200次/秒。
四、请求包示例
基础形式
{ "RoomId":"room1", "Sender_Account":"user1", "BusinessId":"xxxxx", "Data":"zzzzzzz", "MsgPriority" : "Normal"}
五、请求包字段说明
| 字段 | 类型 | 属性 | 说明 |
| RoomId | String | 必填 | 房间 ID。 |
| Sender_Account | String | 选填 | 消息发送者用户 ID。 |
| BusinessId | String | 必填 | 标记发送消息类型。 |
| Data | String | 必填 | 消息内容。 |
| MsgPriority | String | 选填 | 消息优先级,可以指定3种优先级,从高到低依次为 High、Normal 和 Low,区分大小写,不添加则默认消息优先级为 Normal。 |
六、消息格式说明
本接口由即时通信 IM 在 群组中发送普通消息 包装而来。此消息包装后请求体 MsgBody 中消息格式对应 自定义消息格式,包装后的请求信息如下:
{ "MsgBody" : [ { "MsgContent" : { "Data" : "{\\"BusinessId\\":\\"key\\",\\"Data\\":\\"value\\"}" }, "MsgType" : "TIMCustomElem" }}
七、消息格式字段与请求字段对应关系说明
| 字段 | 类型 | 说明 |
| MsgBody | Object | 包装后的消息体。 |
| MsgContent | Object | 包装后的消息内容。 |
| Data | String | 消息内容,内容为请求字段 BusinessId 与 Data 组成的 json 转义字符串。 |
| MsgType | String | 消息类型,本接口发送的消息类型固定为 TIMCustomElem。 |
消息回调中会用到此请求信息,详细描述见:房间内发言之前回调 和 房间内发言之后回调。
八、应答包体示例
{ "ErrorCode": 0, "ErrorInfo": "", "ActionStatus": "OK", "RequestId": "Id-b6454678e8a647ffa476ec1fee1263d1-O-Seq-2433991", "Response": { "MsgTime": 1750074537, "MsgSeq": 26, "MsgDropReason" : "MsgFreqCtrl" }}
九、应答包字段说明
| 字段 | 类型 | 说明 |
| ActionStatus | String | 请求处理的结果,OK 表示处理成功,FAIL 表示失败。 |
| ErrorCode | Integer | 错误码,0表示成功,非0表示失败。 |
| ErrorInfo | String | 错误信息。 |
| RequestId | String | 唯一请求 ID,每次请求都会返回,定位问题时需要提供该次请求的 RequestId。 |
| MsgTime | Integer | 消息发送的时间戳,对应后台 server 时间。 |
| MsgSeq | Integer | 消息序列号,唯一标识一条消息。 |
| MsgDropReason | String | 消息丢弃原因;默认为空,否则表明消息被丢弃的原因,当前只支持消息频控丢弃。 |
十、错误码说明
除非发生网络错误(例如502错误),否则该接口的 HTTP 返回码均为200。真正的错误码,错误信息是通过应答包体中的 ErrorCode、ErrorInfo 来表示的。
公共错误码(60000到79999)参见 错误码 文档。
本 API 私有错误码如下:
| 错误码 | 含义说明 |
| 100001 | 服务器内部错误,请重试。 |
| 100002 | 请求参数非法,请根据错误描述检查请求是否正确。 |
| 100004 | 房间不存在。 |
| 100006 | 操作权限不足,需要管理员账号操作。 |
| 100601 | 因被禁言而不能发送消息,请检查发送者是否被设置禁言。 |
| 100602 | 发消息的频率超限,请延长两次发消息时间的间隔。 |
| 100603 | 消息内容过长,目前最大支持12K 字节的消息,请调整消息长度。 |