撤回消息
调用该接口撤回指定消息。调用接口的身份不同(身份通过 Authorization 请求头参数指定),可实现的效果不同:
- 机器人可以撤回该机器人自己发送的消息。
- 群聊的群主可以撤回群内指定的消息。
前提条件
使用限制
- 无法撤回通过批量发送消息接口发送的消息,撤回该接口发送的消息需要使用批量撤回消息接口。
- 撤回的消息需要符合由企业管理员设置的撤回时限。详情了解管理员设置撤回和编辑消息权限。
- 在群聊内的机器人如需撤回他人发送的消息,则该机器人必须是该群的群主、管理员或者创建者,且消息发送时间不超过 1 年。
请求
| 项目 | 值 |
|---|---|
| HTTP URL | https://open.feishu.cn/open-apis/im/v1/messages/:message_id |
| HTTP Method | DELETE |
| 接口频率限制 | 1000 次/分钟、50 次/秒 |
| 支持的应用类型 | custom,isv |
| 权限要求 调用该 API 所需的权限。开启其中任意一项权限即可调用 开启任一权限即可 | im:message 获取与发送单聊、群组消息 im:message:recall 撤回消息 im:message:send_as_bot 以应用的身份发消息 |
请求头
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| Authorization | string | 是 | tenant_access_token 或 user_access_token 值格式:"Bearer access_token" 示例值:"Bearer u-7f1bcd13fc57d46bac21793a18e560" 了解更多:如何选择与获取 access token |
路径参数
| 名称 | 类型 | 描述 |
|---|---|---|
message_id | string | 待撤回的消息 ID。 ID 获取方式: - 调用发送消息接口后,从响应结果的 message_id 参数获取。 - 监听接收消息事件,当触发该事件后可以从事件体内获取消息的 message_id。 - 调用获取会话历史消息接口,从响应结果的 message_id 参数获取。示例值:"om_dc13264520392913993dd051dba21dcf" |
响应
响应体
| 名称 | 类型 | 描述 |
|---|---|---|
code | int | 错误码,非 0 表示失败 |
msg | string | 错误描述 |
data | \- | - |
响应体示例
json
{
"code": 0,
"msg": "success",
"data": {}
}错误码
| HTTP状态码 | 错误码 | 描述 | 排查建议 |
|---|---|---|---|
| 400 | 230001 | Your request contains an invalid request parameter. | 参数错误,可根据接口实际返回的错误信息,并参考接口文档内容,检查输入参数是否填写错误。 |
| 400 | 230002 | The bot can not be outside the group. | 机器人不在对应群组中。你需要将应用机器人添加到消息相应的群组中。如何添加机器人参考机器人使用指南。 |
| 400 | 230006 | Bot ability is not activated. | 应用未启用机器人能力。启用方式参见如何启用机器人能力。 |
| 400 | 230009 | Message has expired when recall message. | 消息发出时间过长,不能执行当前操作。撤回的消息需要符合由企业管理员设置的撤回时限。详情了解管理员设置撤回和编辑消息权限。 |
| 400 | 230013 | Bot has NO availability to this user. | 目标用户(以用户的 user_id/open_id/union_id/email 指定的消息接收者)或单聊用户(以群聊的 chat_id 指定的消息接收者,但 chat_id 对应的群聊类型为单聊 p2p)不在应用机器人的可用范围内,或者是在应用的禁用范围内。 注意:如果目标用户已离职,也会报错 230013。 解决方案: 1. 登录开发者后台,找到并进入指定应用详情页。 2. 在左侧导航栏进入 应用发布 > 版本管理与发布 页面,点击 创建版本。 3. 在 版本详情 页面,找到 可用范围 区域,点击 编辑。 4. 在弹出的对话框内,配置应用的可用范围,将用户添加至可用范围内。 5. 在页面底部点击 保存,并发布应用使配置生效。 6. (可选)如果以上配置完成后仍报错,则需要联系企业管理员登录管理后台,在 工作台 > 应用管理 中进入指定应用详情页,在 应用可用范围 内查看该用户是否被设置为了 禁用成员。 具体操作参见配置应用可用范围。 |
| 400 | 230026 | No permission to recall this message. | 机器人没有权限撤回该消息。机器人只能撤回自己发出的消息。 |
| 400 | 230027 | Lack of necessary permissions. | 无权进行本次操作。可能的原因有: 1. 缺少相应权限,可根据实际的错误信息进行排查。 2. 未检查到用户授权信息。 3. 如果需要机器人在外部群操作,则需要先为机器人开启对外共享能力,详情参见机器人支持外部群和外部用户单聊。 |
| 400 | 230050 | The message is invisible to the operator. | 该消息对于当前的操作者不可见,无法进行本操作。 |
| 400 | 230054 | This operation is not supported for this message type. | 该消息类型不支持本操作,详情参见消息与群组部分API增加不支持的消息类型校验 。 |
| 400 | 230110 | Action unavailable as the message has been deleted. | 消息已被删除,无法执行当前操作。 |
| 400 | 232009 | Your request specifies a chat which has already been dissolved. | 群组已被解散,无法执行当前操作。 |
更多错误码信息,参见通用错误码。
