跳到主要内容

设置超级群消息扩展

超级群消息扩展功能可用于为原始消息增加状态标识(扩展数据为 KV 键值对),提供添加、删除、查询扩展信息的接口。

使用消息扩展的场景

对原始消息增加状态标识的业务场景均可使用消息扩展。以下是业务场景示例:

  • 消息评论。可通过设置原始消息扩展信息的方式添加评论信息。
  • 礼物领取、订单状态变化。通过此功能可改变消息显示状态。例如:向用户发送礼物,默认为未领取状态,用户点击后可设置消息扩展为已领取状态。

消息扩展支持的会话类型

超级群消息扩展接口仅可用于超级群会话类型。

注意事项

消息扩展操作实际上是通过一条特殊的消息实现的,可认为是“扩展操作消息”。如需保证在长期(超过 7 天)不登录客户端等情况下仍可获取扩展操作消息,建议在超级群服务页面延长超级群消息云端存储的时长。

前提条件

原始消息必须在发送时已设置为可扩展。每次最多可以设置 100 个扩展属性信息,最多可设置 300 个。

提示

例如,通过即时通讯服务端 API 发送消息时,需要设置 expansiontrue,该条消息才能支持扩展信息设置。客户端 SDK 从特定版本开始支持该功能(移动端 4.0.3 版本、Web 端 3.0.7 版本)

请求方法

POST: https://数据中心域名/ultragroup/message/expansion/set.json

频率限制: 每秒钟限 100 次

签名规则: 所有服务端 API 请求均需要进行规则校验,详见 API 请求签名

正文参数

HTTP 请求正文数据格式为 application/x-www-form-urlencoded,支持以下 HTTP 表单参数:

提示

扩展信息设置超过 300 个时,设置不成功,返回设置失败错误码,如:已设置 290 个,再次设置 100 个时,本次请求全部失败,设置不成功。

参数类型必传说明
msgUIDString消息唯一标识 ID,可通过全量消息路由功能获取。详见全量消息路由
userIdString操作者用户 ID,即需要为指定消息(msgUID)设置扩展信息的用户 ID。
busChannelString超级群频道 ID。具体使用要求如下:
  • 如果发送消息时指定了频道 ID,则必传频道 ID,否则无法成功设置扩展。
  • 如果发送消息时未指定频道 ID,则不可传入频道 ID,否则无法成功设置扩展。
客户端发送超级群消息时,频道 ID 对应字段名称为 channelId
groupIdString超级群 ID。
extraKeyValObject消息扩展的内容,JSON 结构,以 Key、Value 的方式进行设置,如:{"type":"3"}。Key 最大 32 个字符,支持大小写英文字母、数字、 特殊字符+ = - _ 的组合方式,不支持汉字。Value 最大 4096 个字符。单条消息可设置 300 个扩展信息,一次最多可以设置 100 个。

请求示例

POST /ultragroup/message/expansion/set.json HTTP/1.1
Host: api.rong-api.com
App-Key: uwd1c0sxdlx2
Timestamp: 1585127132438
Nonce: 14314
Signature: 45beb7cc7307889a8e711219a47b7cf6a5b000e8
Content-Type: application/x-www-form-urlencoded

msgUID=BRGM-DEN2-01E4-BN66&userId=WNYZbMqpH&groupId=tjw3zbMrU&busChannel=&extraKeyVal=%7B%22type%22%3A%223%22%7D

返回结果

HTTP 响应正文包含具有以下结构的 JSON 对象:

返回值返回类型说明
codeNumber返回码,200 为正常。

返回结果示例

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{"code":200}