设置群消息扩展
功能说明
App 管理员和群成员可以为群聊普通消息设置消息扩展,消息扩展为一组自定义的键值对。
注意
此功能需 进阶版套餐,并且已开通“消息扩展功能”功能(控制台“登录与消息”配置)。
单条群消息可设置的最大键值对数量为300条。
被设置的群消息需要在发送时指定“支持消息扩展”,参见 在群组中发送普通消息。
接口调用说明
适用的群组类型
群组类型 ID | 是否支持此 REST API |
Private | 支持,同新版本中的 Work(好友工作群) |
Public | 支持 |
ChatRoom | 支持,同新版本中的 Meeting(临时会议群) |
AVChatRoom | 不支持 |
Community(社群) | 不支持 |
请求 URL 示例
https://xxxxxx/v4/openim_msg_ext_http_svc/group_set_key_values?sdkappid=88888888&identifier=admin&usersig=xxx&random=99999999&contenttype=json
请求参数说明
参数 | 说明 |
xxxxxx | SDKAppID 所在国家/地区对应的专属域名: 中国: console.tim.qq.com 新加坡: adminapisgp.im.qcloud.com 首尔: adminapikr.im.qcloud.com 法兰克福: adminapiger.im.qcloud.com 硅谷: adminapiusa.im.qcloud.com 雅加达: adminapiidn.im.qcloud.com |
v4/openim_msg_ext_http_svc/group_set_key_values | 请求接口 |
sdkappid | 创建应用时即时通信 IM 控制台分配的 SDKAppID |
identifier | |
usersig | |
random | 请输入随机的32位无符号整数,取值范围0 - 4294967295 |
contenttype | 请求格式固定值为 json |
最高调用频率
200次/秒。
请求包示例
基础形式
为 MsgSeq 为158的群消息设置消息扩展:
{"GroupId": "@TGS#1YMVAB3IZ","MsgSeq": 158,"OperateType": 1,"ExtensionList": [{"Key": "key1", "Value": "value1", "Seq": 0},{"Key": "key2", "Value": "value2", "Seq": 0},]}
为 MsgSeq 为158的群消息删除消息扩展:
{"GroupId": "@TGS#1YMVAB3IZ","MsgSeq": 158,"OperateType": 2,"ExtensionList": [{"Key": "key1", "Value": "", "Seq": 1}]}
将 MsgSeq 为158的群消息的所有消息扩展清空:
{"GroupId": "@TGS#1YMVAB3IZ","MsgSeq": 158,"OperateType": 3}
请求包字段说明
字段 | 类型 | 属性 | 说明 |
GroupId | String | 必填 | 群 ID |
MsgSeq | Integer | 必填 | 需要设置的群消息的 Seq |
OperateType | Integer | 必填 | 1 为设置消息扩展 KV,2 为删除消息扩展 KV,3 为清空所有消息扩展 KV |
ExtensionList | Array | OperateType为1、2时必填 | 需要设置/删除的 KV,单次请求最多可设置20条 KV |
其中ExtensionList中对象的每一个字段说明如下:
字段 | 类型 | 属性 | 说明 |
Key | String | 必填 | 键值对的 Key,最大为100字节 |
Value | String | 必填 | 键值对的 Value,最大为1000字节 |
Seq | Integer | 非 App 管理员调用时必填 | 该条 KV 的版本号。群成员调用首次设置时为0,设置成功后为1。后续每次设置需要将该条扩展的最新 Seq 传回后台,后台将校验该条 KV 是否被其他人修改过,若 Seq 不匹配该条 KV 设置失败,同时返回错误码。App 管理员调用时不校验 Seq。 |
应答包体示例
{"ActionStatus": "OK","ErrorInfo": "","ErrorCode": 0,"ExtensionList": [{"ErrorCode": 0,"Extension": {"Key": "key1","Value": "value1","Seq": 1}},{"ErrorCode": 23001,"Extension": {"Key": "key2","Value": "value1234","Seq": 2}}]}
应答包字段说明
字段 | 类型 | 说明 |
ActionStatus | String | 请求处理的结果,OK 表示处理成功,FAIL 表示失败 |
ErrorCode | Integer | 错误码,0表示成功,非0表示失败 |
ErrorInfo | String | 错误信息 |
ExtensionList | Array | 返回设置扩展结果 |
错误码说明
除非发生网络错误(例如502错误),否则该接口的 HTTP 返回码均为200。真正的错误码,错误信息是通过应答包体中的 ErrorCode、ErrorInfo 来表示的。
公共错误码(60000到79999)参见 错误码 文档。
本 API 私有错误码如下:
错误码 | 含义说明 |
10002 | 服务器内部错误,请重试 |
10004 | 参数非法,请根据错误描述检查请求是否正确 |
10008 | 非法请求,非进阶版套餐请求返回该错误 |
23001 | Seq冲突,表示设置的KV被其他人修改过,需拉取最新的Seq再次请求 |
23002 | 被设置的群消息不支持设置消息扩展。 |
23003 | 设置KV过于频繁(单条消息超过200/min) |
23004 | 被设置的群消息不存在 |