浏览 平台 API
服务端 API

批量设置会话

复制

使用 批量设置会话 从可信后端调用 OpenIM 会话 REST 接口。为多个用户批量设置同一个会话的可更新字段,例如免打扰、置顶、扩展字段或阅后即焚配置。 请先在接入准备中配置 API 地址和管理员 Token;接口参数通过请求头和 JSON 请求体传递。

HTTP 请求

POST {API_ADDRESS}/conversation/set_conversations

请求示例

curl --request POST "${API_ADDRESS}/conversation/set_conversations" \
  --header "Content-Type: application/json; charset=utf-8" \
  --header "operationID: ${OPERATION_ID}" \
  --header "token: ${ADMIN_TOKEN}" \
  --data-raw '{
  "userIDs": [
    "user_001",
    "user_003"
  ],
  "conversation": {
    "conversationID": "si_user_001_user_002",
    "conversationType": 1,
    "userID": "user_002",
    "groupID": "",
    "recvMsgOpt": 0,
    "isPinned": true,
    "attachedInfo": "",
    "isPrivateChat": false,
    "ex": "",
    "burnDuration": 0,
    "minSeq": 0,
    "maxSeq": 128,
    "groupAtType": 0,
    "msgDestructTime": 0,
    "isMsgDestruct": false
  }
}'
安全提示:管理员 Token 只能保存在可信后端服务中,不能下发到客户端或写入前端代码。客户端登录应使用服务端签发的用户 Token。

参数

此接口通过请求头传入链路追踪信息和鉴权凭证,通过 JSON 请求体传递业务参数。

请求头

Header是否必填类型说明
operationIDstring每次请求的唯一链路追踪 ID,建议由后端生成并写入日志。
tokenstringAPP 管理员 Token;仅保存在可信后端服务中。
Content-Type: application/jsonstring请求体为 JSON 时必须设置。

请求体

{
  "userIDs": [
    "user_001",
    "user_003"
  ],
  "conversation": {
    "conversationID": "si_user_001_user_002",
    "conversationType": 1,
    "userID": "user_002",
    "groupID": "",
    "recvMsgOpt": 0,
    "isPinned": true,
    "attachedInfo": "",
    "isPrivateChat": false,
    "ex": "",
    "burnDuration": 0,
    "minSeq": 0,
    "maxSeq": 128,
    "groupAtType": 0,
    "msgDestructTime": 0,
    "isMsgDestruct": false
  }
}
参数名是否必填类型说明
userIDsarray需要设置会话字段的用户 ID 列表。
conversationobject要设置的会话字段,结构为会话模块的 ConversationInfo
conversation.conversationIDstring会话 ID。
conversation.conversationTypeint会话类型,参见会话模块的 ConversationType
conversation.userIDstring单聊目标用户 ID;单聊会话必填。
conversation.groupIDstring群组 ID;群聊会话必填。
conversation.recvMsgOptint收消息选项,参见会话模块的 RecvMsgOpt
conversation.isPinnedboolean是否置顶会话;传入字段时会更新。
conversation.attachedInfostring会话附加信息。
conversation.isPrivateChatboolean是否为私聊/阅后即焚类会话。
conversation.exstring会话扩展字段。
conversation.burnDurationint阅后即焚时长,单位秒。
conversation.minSeqint会话最小消息序列号。
conversation.maxSeqint会话最大消息序列号。
conversation.groupAtTypeint群聊 @ 状态,参见会话模块的 GroupAtType
conversation.msgDestructTimeint消息销毁时间配置。
conversation.isMsgDestructboolean是否开启消息销毁。
conversation.isMarked 商业版boolean是否标记该会话。
conversation.remark 商业版string当前用户为会话设置的备注。

响应

请求被 OpenIM 正常处理时通常返回 200 OK。业务是否成功以响应体中的 errCode 为准;errCode === 0 表示成功,非 0 表示业务错误。

{
  "errCode": 0,
  "errMsg": "",
  "errDlt": ""
}

响应参数

参数名类型说明
errCodeint业务错误码,0 表示成功。
errMsgstring错误简要信息,成功时通常为空。
errDltstring错误详细信息,成功时通常为空。

错误

如果请求失败,OpenIM 返回错误对象。更多错误码说明见错误码

{
  "errCode": 1004,
  "errMsg": "RecordNotFoundError",
  "errDlt": ": [1004]RecordNotFoundError"
}
错误场景可能原因处理方式
鉴权失败token 缺失、过期,或不是可调用管理端接口的管理员 Token。重新获取 APP 管理员 Token,并只在可信后端保存。
链路追踪困难operationID 缺失或在大量请求中重复使用。为每次请求生成独立 operationID,并在服务端日志中保留。
参数校验失败请求体字段类型、必填字段或枚举值不符合接口要求。对照请求体参数表和限制说明检查字段。

权限和限制

  • 批量更新用户会话设置,并可能触发会话变更通知。
  • userIDsconversation 必填。
  • 仅传需要更新的包装类型字段;未传字段不会被修改。
  • 单聊会话填写 conversation.userID,群聊会话填写 conversation.groupID
  • 所有数组型请求参数建议控制在 1000 个元素以内。

相关页面