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