无 UI 集成方案

服务端 API

诚邀爱技术、爱分享的你,成为文档内容共建者> 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
  • 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 被设置的群消息不存在
    目录