发送群聊消息
向应用下的一个或多个群组发送消息。请注意,通过服务端 API 向群组发送消息时,不要求发送者为群组成员。应用需自行控制发消息权限。该接口可以实现以下功能:
- 发送普通群聊消息:单次支持向最多 3 个群组发送消息。
- 发送定向群聊消息:可向群组中指定的一个或多个用户发送消息,但单次仅支持指定一个目标群组。
通过该接口发送的消息,默认不会向消息发件人客户端同步,也不会存入发件用户的历史消息记录。如需同步,请参见 isIncludeSender 参数用法。
请求方法
POST: https://数据中心域名/message/group/publish.json
频率限制:每秒 20 条消息。请注意,如果一次向 3 个群组发送消息,视为 3 条消息。另见已知问题 1。
签名规则:所有服务端 API 请求均需要进行规则校验,详见 API 请求签名。
正文参数
HTTP 请求正文数据格式为 application/x-www-form-urlencoded,支持以下 HTTP 表单参数:
提示
发送群聊定向消息时,仅支持一个 toGroupId,且不支持 expansion、extraContent、disablePush、pushExt 字段。
| 参数 | 类型 | 必传 | 说明 |
|---|---|---|---|
fromUserId | String | 是 | 发送人用户 ID,通过服务端 API,非群成员也可以向群组中发送消息。 注意:发送消息所使用的用户 ID 必须已获取过用户 Token,否则消息一旦触发离线推送,通知内无法正确显示发送者的用户信息。 |
toGroupId | String | 是 | 接收消息的群组 ID。最多支持 3 个。发送群聊定向消息时,仅支持传入一个群组 ID。 |
toUserId | String[] | 否 | 发送群聊定向消息时,接收消息的群成员用户 ID 列表。群中其他用户无法收到该定向消息。仅当 toGroupId 传入单个群组 ID 时有效。 |
objectName | String | 是 | 支持内置消息类型(见消息类型概述)或自定义消息的消息类型值。 注意:在自定义消息时,消息类型不可以 "RC:" 开头,以免与系统内置消息类型重名;消息类型长度不可超过 32 个字符。SDK 中必须已注册过该自定义消息,否则 SDK 收到该消息后将无法解析。 |
content | String | 是 | 所发送消息的内容。2026 年 5 月 29 日起,新注册客户的除图片消息(RC:ImgMsg)、流式消息(RC:StreamMsg)、语音消息(RC:VcMsg)、视频消息(RC:SightMsg)、位置消息(RC:LBSMsg)、合并转 发消息(RC:CombineV2Msg,RC:CombineMsg)、引用消息(RC:ReferenceMsg)外,其他消息的 content 消息体大小限制不超过 10 KB。
|
pushContent | String | 否 | 指定收件人离线时触发的远程推送通知中的通知内容。注意:对于部分消息类型,该字段是否有值决定了是否触发远程推送通知。
|
pushData | String | 否 | iOS 平台收到推送消息时,可从 payload 中获取 APNs 推送数据,对应字段名为 appData(提示:rc 字段中默认携带了消息基本信息)。Android 平台收到推送消息时对应字段名为 appData。 |
isIncludeSender | Int | 否 | 是否向发件人客户端同步已发消息。1 表示同步,默认值为 0,即不同步。注意,仅设置该参数无法确保发件人客户端一定能获取到该条已发消息,您可能还需要启用其他服务。详见客户端如何同步已发消息。 |
isPersisted | Int | 否 | 是否需要为收件人在历史消息云端存储服务中存储此条消息。0 表示不存储;1 表示存储。默认值为 1,存储(依赖单群聊消息云端存储服务)。注意:即使已开通单群聊消息云端存储功能,群组定向消息也不会存入服务端历史消息记录。如有需要,请在需先按控制台内嵌指南嵌入到管理后台的 IM 服务功能配置页面(page_code: im_service_config)中,进入 全局消息 > 群定向消息云存储,开启该服务。 此属性不影响离线消息功能,用户未在线时都会转为离线消息?存储。 提示:一般情况下(第 1、2 种情况),客户端是否存储消息不依赖此参数。以下第 3 种情况属于例外:
|
isMentioned | Int | 否 | 是否为 @ 消息,不传时默认为非 @ 消息(效果等于传 0)。如果需要发送 @ 消息,必须指定为 1,且必须在消息内容字段(content)内部携带 @ 相关信息(mentionedInfo,可参考下方请求示例)中。关于 mentionedInfo 结构的详细说明,参见如何发送 @ 消息。 |
contentAvailable | Int | 否 | 针对 iOS 平台,对 SDK 处于后台暂停状态时为静默推送,是 iOS7 之后推出的一种推送方式。 允许应用在收到通知后在后台运行一段代码,且能够马上执行。详情请查看知 识库文档。1 表示为开启,0 表示为关闭,默认为 0 |
expansion | Boolean | 否 | 是否为可扩展消息,默认为 false,设为 true 时终端在收到该条消息后,可对该条消息设置扩展信息。移动端 SDK 4.0.3 版本、Web 端 3.0.7 版本支持此功能。仅当 toGroupId 传入单个群组 ID 时有效。 |
extraContent | Object | 否 | 仅当 expansion 为 true 时有效,仅当 toGroupId 传入单个群组 ID 时有效。自定义的消息扩展信息,该字段接受 JSON 字符串格式的键值对(key-value pairs)。请注意区别于消息体内的 extra 字段,extraContent 的值在消息发送后可修改,修改方式请参见服务端 API 接口文档消息扩展,或参考各客户端「消息扩展」接口文档。KV 详细要求:以 Key、Value 的方式进行设置,如: {"type":"3"}。Key 最大 32 个字符,支持大小写英文字母、数字、 特殊字符+ = - _ 的组合方式,不支持汉字。Value 最大 4096 个字符。单次可设置最多 100 对 KV 扩展信息,单条消息最多可设置 300 对 KV 扩展信息。 |
disablePush | Boolean | 否 | 是否为静默消息,默认为 false,设为 true 时终端用户离线情况下不会收到通知提醒。仅当 toGroupId 传入单个群组 ID 时有效。 |
pushExt | String | 否 | 配置消息的推送通知,如推送通知的标题等。disablePush 属性为 true 时此属性无效。具体请查看下方 pushExt 参数说明 |