You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现Telegram Bot用户点击内联键盘按钮后删除消息?

实现Telegram Bot发送带Inline键盘的消息并在点击后删除

当然可以做到!我来一步步给你讲清楚具体实现方式:

1. 发送带Inline键盘的消息

你现有的sendMessage API调用是完全正确的,我把它整理成更易读的代码格式:

https://api.telegram.org/bot012345678:fdvnljfnvlskn345bklbv/sendMessage?chat_id=123456789&text=Hello&reply_markup={"inline_keyboard":[{"text":"Yes","callback_data":"Yes"},{"text":"No","callback_data":"No"}]}

发送这个请求后,Telegram API会返回包含消息ID的响应,你可以提前保存这个message_id,也能后续从按钮点击的回调数据里直接获取。

2. 监听按钮点击的回调查询

当用户点击Inline键盘上的任意按钮时,Telegram会向你的Bot推送一个callback_query类型的更新。你需要监听这个更新,并从中提取三个关键信息:

  • chat_id:用户的聊天ID
  • message_id:你之前发送的那条带键盘的消息ID
  • callback_data:按钮对应的标识(比如你设置的"Yes"或"No")

3. 调用DeleteMessage API删除目标消息

拿到chat_id和message_id后,直接调用Telegram的deleteMessage API就能删除那条消息了,示例请求如下:

https://api.telegram.org/bot<你的Bot令牌>/deleteMessage?chat_id=<用户聊天ID>&message_id=<要删除的消息ID>

记得把尖括号里的内容替换成实际的令牌、聊天ID和消息ID。

额外小提示

  • 权限说明:如果是和私人用户聊天,Bot默认拥有删除自己发送消息的权限;如果是在群组中,需要确保Bot被管理员授予了delete_messages权限。
  • 可选优化:删除消息后,你可以给用户发送一条简短的确认消息,比如sendMessage?chat_id=123456789&text=你选择了Yes,原消息已删除,能提升用户体验。

内容的提问来源于stack exchange,提问作者Igor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:10:32