Telegram Bot是否支持删除已通过reply_photo()发送的照片?
Telegram Bot删除reply_photo发送的已发照片的实现说明
- 核心结论:该删除功能完全支持,你尝试使用的
delete_message()就是官方指定的正确实现方法,不存在照片类消息需要单独调用删除接口的规则,之前调用失败基本是参数或权限问题,不是功能不支持。
正确实现流程
- 留存发送成功的返回参数
调用reply_photo()发送照片后,接口会返回完整的Message响应对象,从中提取两个固定参数:- 当前会话的
chat_id,与发送照片时使用的会话ID完全一致 - 这条照片消息专属的
message_id,注意不要和用户触发Bot的消息ID、之前发送的其他消息ID混淆
- 当前会话的
- 传入参数调用删除接口
直接将提取到的chat_id和message_id传入delete_message()方法即可完成删除。该接口适配所有Bot有权限操作的消息类型,覆盖文本、图片、视频、文件、贴纸等全品类消息,不需要针对照片类消息做特殊处理。
调用失败的常见排查方向
- 权限匹配问题:在群聊场景中,Bot仅能删除自己发送的消息,若Bot未开启群管理员对应的“删除消息”权限,哪怕删除自己发送的照片也会返回权限不足错误。
- 参数匹配错误:传错消息ID、传入非当前会话的chat_id,都会导致接口找不到待删除的照片消息。
- 时效限制:Bot仅能删除发送时长不超过48小时的消息,超期消息无删除权限。
文档说明补充:官方文档没有单独列出“删除照片类消息”的专项操作说明,是因为
delete_message()的接口规则本身就覆盖了Bot发送的所有类型消息,不需要针对每一个消息发送接口(reply_photo()、send_photo()、send_video()等)单独罗列删除逻辑。
内容的提问来源于stack exchange,提问作者goalie1998
相关产品推荐
相关产品推荐

