撤回消息
撤回指定消息本质是发送一条撤回命令消息。移动端收到撤回命令消息后,原目标消息将被删除,同时生成一条 objectName
是 RC:RcNtf
的通知消息,会话界面中可根据 RC:RcNtf
展示。
撤回命令消息也会存储到历史消息中,SDK 在获取历史消息时,会获取到撤回命令消息和被撤回的原始消息。移动端 SDK 已内部实现删除逻辑,开发者无需额外处理。
开通服务
使用撤回消息功能无需开通服务。注意,通过服务端撤回消息时,如果撤回操作者的客户端在线,客户端会同步执行该撤回操作。如果操作者客户端长期离线,则下次上线时通过 Server API 撤回的消息可能仍会在发件人客户端展示(收件方不受影响)。建议开通多设备消息同步功能,在发件人客户端再次上线时由 SDK 自动处理。开通方式详见消息管理服务配置。
请求方法
POST: https://数据中心域名/message/recall.json
频率限制: 每秒钟限 100 次
签名规则: 所有服务端 API 请求均需要进行规则校验,详见 API 请求签名。
参数说明
参数 | 类型 | 必传 | 说明 |
---|---|---|---|
fromUserId | String | 是 | 消息发送人用户 ID。 |
conversationType | Int | 是 | 会话类型。支持的会话类型包括:1 (单聊会话)、3 (群组会话)、4 (聊天室会话)、6 (系统会话)、10 (超级群会话)。 |
targetId | String | 是 | 目标 ID,根据不同的会话类型(ConversationType ),可能是用户 ID、群组 ID、聊天室 ID、超级群 ID,系统目标 ID。 |
busChannel | String | 否 | 超级群频道 ID,仅适用于撤回超级群消息。使用要求如下:
channelId 。 |
messageUID | String | 是 | 消息唯一标识。 |
sentTime | Long | 是 | 消息发送时间。 |
isAdmin | Int | 否 | 是否为管理员,默认为 0,设为 1 时,IMKit 收到此条消息后,小灰条默认显示为“管理员 撤回了一条消息”。 |
isDelete | Int | 否 | 指定移动端接收方是否需要在本地删除原始消息记录及显示撤回消息提示,默认为 0 。
isDelete 设置为 0 ,撤回超级群消息后,移动端本地会存有记录(显示为撤回提示),而 Web 端无记录,可能会造成用户体验差异。 |
disablePush | Boolean | 否 | 是否为静默撤回,默认为 false ,设为 true 时终端用户离线情况下不会收到撤回通知提醒。该字段不支持聊天室、超级群会话类型。 |
extra | String | 否 | 扩展信息,可以放置任意的数据内容。不支持超级群会话(conversationType 为 10 )。 |
请求示例
POST /message/recall.json HTTP/1.1
Host: api.rong-api.com
App-Key: uwd1c0sxdlx2
Nonce: 14314
Timestamp: 1408710653491
Signature: 45beb7cc7307889a8e711219a47b7cf6a5b000e8
Content-Type: application/x-www-form-urlencoded
fromUserId=fDR2cVpxxR5zSMUNh3yAwh&targetId=MersNRhaKwJkRV9mJR5JXY&conversationType=1&messageUID=5FGT-7VA9-G4DD-4V5P&sentTime=1507778882124
返回结果
HTTP 响应正文包含具有以下结构的 JSON 对象:
返回值 | 返回类型 | 说明 |
---|---|---|
code | Number | 返回码,200 为正常。 |
返回结果示例
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{"code":200}