设置用户全局禁言

大约 3 分钟

设置用户全局禁言

功能说明

  • 设置单个用户 ID 的单聊、群组和/或聊天室消息的全局禁言。
  • 设置成功后,该用户将无法在对应的单聊、群组和/或聊天室中发送消息,不会触发 发送前回调
  • 可设置禁言时长,禁言到期后,服务器会自动解除禁言,恢复该用户发送消息的权限。
  • 支持单聊、群组和/或聊天室的永久禁言。

开通功能

  • 对于专业版 IM,使用用户全局禁言前,你需要在 声网控制台open in new window 升级至旗舰版。
  • 对于旗舰版 IM,用户全局禁言功能默认开启。

调用频率上限

100 次/秒/App ID

请求 URL

POST https://{host}/app-id/{app_id}/mutes

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

请求示例

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

curl -X POST 'https://XXXX/app-id/{app_id}/mutes' \
-H 'Authorization: Bearer <YourAppToken>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'  \
-d '{
    "username": "zs1",
    "chat": 100,
    "groupchat": 100,
    "chatroom": 100
}'

请求 header 参数

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

请求 body 参数

参数类型是否必需描述
usernameString设置全局禁言的用户 ID。
chatInt单聊禁言时长,单位为秒,最大值为 2147483647
- > 0:该用户 ID 的单聊禁言时长。
- 0:取消该用户的单聊禁言。
- -1:该用户被设置永久单聊禁言。
- 其他负值无效。
groupchatInt群组禁言时长,单位为秒,规则同单聊禁言。
chatroomInt聊天室禁言时长,单位为秒,规则同单聊禁言。

提示

chatgroupchatchatroom 三个参数均为可选,若都不传,则请求也会成功,只是不做任何禁言处理。

响应示例

{
  "path": "/mutes",
  "uri": "https://XXXX/XXXX/XXXX/mutes",
  "timestamp": 1631609754727,
  "action": "post",
  "data": {
    "result": "ok"
  },
  "duration": 74
}

响应 body 字段

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

字段类型描述
dataJSON全局禁言结果。
data.resultString是否成功设置用户全局禁言。ok 表示设置成功。

响应体中的其他参数说明如下表所示:

字段类型描述
pathString请求路径,属于请求 URL 的一部分,开发者无需关注。
uriString请求 URL。
timestampLongUnix 时间戳,单位为毫秒。
actionString请求方法。
durationInt从发送请求到响应的时长,单位为毫秒。

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

错误码

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

HTTP 状态码错误类型错误提示可能原因处理建议
400required_property_not_foundEntity user requires a property named username用户不存在。先注册用户或者检查用户名是否正确。
401unauthorizedUnable to authenticate (OAuth)token 不合法,可能过期或 token 错误。使用新的 token 访问。
403forbidden_opuser_mute is not used for this app未开通全局禁言功能。你需要在 声网控制台open in new window套餐包 > 预付费套餐包 > 即时通讯 IM 页面开通该功能。

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

上次编辑于: