有奖:语音产品征文挑战赛火热进行中> HOT

功能说明

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

请求 URL 示例

https://xxxxxx/v4/openim_msg_ext_http_svc/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/set_key_values
请求接口
sdkappid
创建应用时即时通信 IM 控制台分配的 SDKAppID
identifier
必须为 App 管理员账号,更多详情请参见 App 管理员
usersig
App 管理员账号生成的签名,具体操作请参见 生成 UserSig
random
请输入随机的32位无符号整数,取值范围0 - 4294967295
contenttype
请求格式固定值为json

最高调用频率

200次/秒。

请求包示例

基础形式
为MsgKey为44739199_12_1665388280的单聊消息设置消息扩展:
{
"From_Account": "62768",
"To_Account": "116400",
"MsgKey": "44739199_12_1665388280",
"OperateType": 1,
"ExtensionList": [
{"Key": "k1", "Value": "v1", "Seq": 0},
{"Key": "k2", "Value": "v2", "Seq": 0},
{"Key": "k3", "Value": "v3", "Seq": 0}
]
}
为MsgKey为44739199_12_1665388280的单聊消息删除消息扩展:
{
"From_Account": "62768",
"To_Account": "116400",
"MsgKey": "44739199_12_1665388280",
"OperateType": 2,
"ExtensionList": [
{"Key": "key1", "Value": "", "Seq": 1}
]
}
将MsgKey为44739199_12_1665388280的单聊消息的所有消息扩展清空:
{
"From_Account": "62768",
"To_Account": "116400",
"MsgKey": "44739199_12_1665388280",
"OperateType": 3
}

请求包字段说明

字段
类型
属性
说明
From_Account
String
选填
消息发送方 UserID(用于指定发送消息方账号)
To_Account
String
必填
消息接收方 UserID
MsgKey
String
必填
单聊消息的唯一标识。获取消息 MsgKey 的方法请参见单发单聊消息的接口说明
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": "k1",
"Value": "v1",
"Seq": 1
}
},
{
"ErrorCode": 23001,
"Extension": {
"Key": "k2",
"Value": "v1234",
"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
被设置的单聊消息不存在