15.13 用户侧删除 IM 消息【新增,待联调】

DELETE /tieup/api/v1/im/messages
Content-Type: application/json
Authorization: Bearer <access_token>

请求体:

{
  "message_nos": [
    "MSG202607030001",
    "MSG202607030002"
  ]
}

请求字段:

字段 类型 必填 说明
message_nos array 要从当前账号当前身份侧删除的平台消息编号数组,最少 1 条、最多 100 条
message_nos[] string 消息编号,最大 64 字符;同一请求中不可重复

鉴权:需要 Authorization: Bearer <access_token>。删除身份由 Token 的 current_identity 决定,客户端不能在请求体指定。粉丝端可删除本人订阅可见时间窗内的定向消息或群发消息;偶像端可删除自己超级群内的消息。自己发送、接收及已撤回占位消息均可删除。

响应字段:

字段 类型 说明
requested_count integer 校验通过后的请求消息编号数量
deleted_count integer 本次新写入用户侧删除记录的数量
already_deleted_count integer 当前账号当前身份此前已经删除或本次并发请求已先删除的数量
ignored_count integer 不存在、无权限、当前身份不可见或状态不允许处理的数量;不返回逐条原因,避免泄露消息存在性
read_count integer 删除前本次新标记已读的接收消息数量;群发已读关闭时只统计定向消息
queued_count integer 本次成功投递异步落库队列的群发已读事件数量;群发已读关闭时固定为 0

完整响应示例:

{
  "code": 200,
  "message": "成功",
  "data": {
    "requested_count": 2,
    "deleted_count": 2,
    "already_deleted_count": 0,
    "ignored_count": 0,
    "read_count": 1,
    "queued_count": 0
  }
}

说明:

  • 该接口是“仅自己这边删除”,服务端只写 tieup_im_message_delete 可见性记录,不删除 tieup_im_message_stattieup_im_message_content,不调用融云撤回,也不影响对方、其他粉丝或同账号另一身份。
  • 删除未读接收消息时,服务端先复用现有已读事务或群发 Redis + 队列链路;新未读消息未完成已读时不写删除记录并返回失败,客户端可以安全重试。
  • 重复请求和并发请求由 (viewer_user_id, viewer_identity, message_no) 唯一键保证幂等;合法请求即使全部为已删除或忽略项也返回 code=200,客户端根据计数字段处理。
  • 删除后,当前身份的历史消息、分页总数、最后消息、会话排序和未读数均排除这些消息。偶像删除被引用的粉丝消息后,不能再以该消息发起新的引用回复;其他已存在消息中的 quoteInfo 引用定位信息继续保留,但当前身份不再通过 originMessage 获取已删除原消息正文。
  • 接口成功后,客户端必须同步从当前设备融云 SDK 本地数据库或 UI 数据源移除对应消息;后端无法自动清理设备已有缓存。其他设备重新请求本地历史接口时会按服务端删除记录保持不可见。
  • 当前不提供恢复接口,用户侧删除记录长期生效;撤回接口仍用于“发送者撤回且双方显示撤回占位”,两者语义不得混用。