有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

功能说明

App 管理员和群成员可以为群聊普通消息设置消息扩展,消息扩展为一组自定义的键值对。
注意
此功能需 旗舰版套餐,并且已开通“消息扩展功能”功能(控制台“登录与消息”配置)。
单条群消息可设置的最大键值对数量为300条。
被设置的群消息需要在发送时指定“支持消息扩展”,参见 在群组中发送普通消息

接口调用说明

适用的群组类型

群组类型 ID
是否支持此 REST API
Private
支持,同新版本中的 Work(好友工作群)
Public
支持
ChatRoom
支持,同新版本中的 Meeting(临时会议群)
AVChatRoom
不支持
Community(社群)
支持
即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

请求 URL 示例

https://xxxxxx/v4/openim_msg_ext_http_svc/group_set_key_values?sdkappid=88888888&identifier=admin&usersig=xxx&random=99999999&contenttype=json

请求参数说明

下表仅列出调用本接口时涉及修改的参数及其说明,更多参数详情请参考 REST API 简介
参数
说明
xxxxxx
SDKAppID 所在国家/地区对应的专属域名:
中国:console.tim.qq.com
新加坡:adminapisgp.im.qcloud.com
首尔: adminapikr.im.qcloud.com
法兰克福:adminapiger.im.qcloud.com
孟买:adminapiind.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
必须为 App 管理员账号,更多详情请参见 App 管理员
usersig
App 管理员账号生成的签名,具体操作请参见 生成 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
被设置的群消息不存在