15.12 撤回 IM 消息【新增,待联调】

POST /tieup/api/v1/im/messages/{message_no}/recall

路径参数:

参数 类型 必填 说明
message_no string 消息编号

鉴权:需要 Authorization: Bearer <access_token>,仅消息发送者可撤回自己的消息。

响应字段:

字段 类型 说明
message_no string 消息编号
object_name string 融云消息 ObjectName
message_type string 消息类型
send_status integer 发送状态,撤回成功后为 3
recall_status integer 撤回状态:0=正常,1=已撤回
recalled_at string/null 撤回时间
content object/null 撤回后返回 null
reference object/null 引用消息快照;如果原消息已撤回,引用消息中的 reference.recall_status=1
extra_content object 撤回前保存的融云扩展快照

响应示例:

{
  "code": 200,
  "message": "成功",
  "data": {
    "message_no": "MSG202607030001",
    "object_name": "RC:TxtMsg",
    "message_type": "text",
    "send_status": 3,
    "recall_status": 1,
    "recalled_at": "2026-07-03 15:35:00",
    "content": null,
    "reference": null,
    "extra_content": {
      "senderRole": "fan",
      "fanId": "10001",
      "artistId": "20001",
      "replyCount": "0"
    }
  }
}

说明:

  • 服务端调用融云 /message/recall.json,使用超级群撤回参数:conversationType=10targetId=rong_ultra_group_idmessageUID=rong_message_uid;非默认频道传 busChannel=rong_channel_id。当前撤回请求不提交可选参数 sentTime,避免融云发送回包缺少真实时间时使用本机近似时间导致原消息定位失败。
  • 超级群撤回不传 disablePushpushContentextra 等普通会话字段;isDelete=0,端侧保留撤回提示。
  • 本项目未设置“两分钟内撤回”的业务限制;是否允许撤回以融云服务端是否仍能定位原消息为准。融云官方码表说明超级群历史消息默认保存 7 天,原消息过期或已被删除时可能无法撤回。
  • 融云返回业务码 22201 时接口按失败处理,本地不会标记为已撤回,返回 HTTP 业务状态 422,提示:融云原始消息不存在,可能已删除或超过超级群消息保存期限,无法撤回
  • 本地不硬删除消息,tieup_im_message_content 保留审计快照;历史列表返回撤回占位。
  • 若被引用消息已撤回,引用消息的 reference.recall_status=1,客户端可展示“原消息已撤回”。