强制设置聊天室自定义属性

大约 3 分钟

强制设置聊天室自定义属性

功能说明

  • 用户强制设置指定聊天室的自定义属性信息。
  • 该接口可覆盖其他用户设置的聊天室自定义属性。

调用频率上限

100 次/秒/App Key

请求 URL

PUT https://{host}/{org_name}/{app_name}/metadata/chatroom/{chatroom_id}/user/{username}/forced
参数类型是否必需描述
chatroom_idString聊天室 ID。
usernameString要强制设置的聊天室自定义属性的所属用户 ID。

关于请求 URL 中的其他参数说明,详见 请求 URL 参数介绍

请求示例

# 将 <YourAppToken> 替换为你在服务端生成的 App Token

curl -X PUT 'https://XXXX/XXXX/XXXX/metadata/chatroom/662XXXX13/user/user1/forced'   \
-H 'Content-Type: application/json'   \
-H 'Accept: application/json'   \
-H 'Authorization: Bearer <YourAppToken>'   \
-d '{
    "metaData": {
        "key1": "value1",
		    "key2": "value2"
    },
    "autoDelete": "DELETE"
 }' 

请求 header 参数

关于 Content-TypeAcceptAuthorization 字段的说明,详见 请求 header 参数说明

请求 body 参数

参数类型是否必需描述
metaDataJSON聊天室的自定义属性,存储为键值对(key-value pair)集合,即 Map<String,String>。该集合中最多可包含 10 个键值对,在每个键值对中,key 为属性名称,最多可包含 128 个字符;value 为属性值,不能超过 4096 个字符。每个聊天室最多可有 100 个自定义属性,每个应用的聊天室自定义属性总大小为 10 GB。
key 支持以下字符集:
• 26 个小写英文字母 a-z;
• 26 个大写英文字母 A-Z;
• 10 个数字 0-9;
• "_", "-", "."。
autoDeleteString当前成员退出聊天室时是否自动删除该自定义属性。
• (默认)'DELETE':是;
• 'NO_DELETE':否。

响应示例

{
  "data": {
    "successKeys": ["key1"],
    "errorKeys": { "key2": "errorDesc" }
  }
}

由于该 API 批量设置聊天室自定义属性,一次可传入多个 key-value。即使其中有些 key-value 校验失败,也不会影响其他 key-value 正常写入,响应状态码仍为 200,示例如下:

{
    "uri": "%s/easemob-demo/chatdemoui/metadata/chatroom",
    "timestamp": 1720769458528,
    "action": "put",
    "data": {
        "successKeys": [],
        "errorKeys": {
            "key1": "properties key 'key1' is exceeding maximum limit 128",
            "key2": "properties key 'key2' is exceeding maximum limit 128"
        }
    }
}

响应 body 字段

如果返回的 HTTP 状态码为 200,表示请求成功,响应包体中包含以下字段:

字段类型描述
dataJSON实际获取的响应数据。
- successKeysArray设置成功的聊天室属性名称列表。
- errorKeysObject设置失败的聊天室属性。这里返回键值对,key 为属性名称,value 为失败原因。

如果返回的 HTTP 状态码非 200,表示请求失败。你可以参考 错误码 了解可能的原因。

错误码

如果返回的 HTTP 状态码非 200,表示请求失败,可能提示以下错误码:

HTTP 状态码错误类型错误提示可能原因处理建议
400exceed allowed batch size 10要设置的 key 属性数量超过了 10 个。要设置的 key 的数量不要超过 10 个。
401unauthorizedUnable to authenticate (OAuth)token 不合法,可能过期或 token 错误。使用新的 token 访问。
401MetadataExceptionuser is not in chatroom用户不在聊天室内。使用正确的聊天室成员的用户 ID。

关于其他错误,你可以参考 响应状态码 了解可能的原因。

上次编辑于: