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

Telegram Bot接收CallbackQuery:InlineKeyboardButton点击无更新问题

解决Telegram Bot内联按钮点击无回调更新的问题

我之前也碰到过一模一样的情况,折腾了好一阵才找到问题根源,咱们一步步来排查:

1. 先确认Bot的更新获取方式是否正确

Telegram Bot获取更新有两种核心方式:长轮询(Polling) 和 Webhook,两种方式不能同时启用,而且都得配置到位才能收到callback_query:

情况A:用长轮询(Polling)获取更新

如果是自己写代码轮询更新,得注意这几点:

  • 确保你的代码在持续调用getUpdates接口,不能只调用一次就停了
  • 检查调用getUpdates时的offset参数,别设成了一个过大的值,导致直接跳过了新的回调更新
  • 可以先手动测试:点击按钮后立刻调用这个接口,看看返回结果里有没有callback_query字段:
    https://api.telegram.org/bot{TOKEN}/getUpdates
    
    如果手动调用能收到,那就是你的轮询代码逻辑有问题——比如轮询间隔太长、处理更新时抛出异常中断了流程。

情况B:用Webhook接收更新

如果配置了Webhook,重点检查这几个点:

  • Webhook的URL必须是HTTPS协议(本地测试可以用ngrok这类工具做HTTPS转发),Telegram不会给HTTP地址推送更新
  • 调用getWebhookInfo接口检查Webhook状态,看看有没有报错:
    https://api.telegram.org/bot{TOKEN}/getWebhookInfo
    
    重点看last_error_message字段,有没有SSL证书错误、URL不可达这类提示
  • 确保你的Webhook服务能正常接收POST请求——Telegram是把更新以POST方式推过来的,如果你的服务只处理GET请求,肯定收不到回调。

2. 检查reply_markup的格式细节

你用的格式看起来没问题,但有两个容易忽略的小坑:

  • callback_data的长度不能超过64字节(Telegram的官方限制),你的"1"是没问题的,但以后用更长内容时要注意
  • 你在URL里用了&(HTML转义后的&),虽然能成功发送消息,但可能在某些场景下导致参数解析异常。建议换用POST方式发送sendMessage,用JSON传参数避免转义问题:
    curl -X POST https://api.telegram.org/bot{TOKEN}/sendMessage \
    -H "Content-Type: application/json" \
    -d '{
      "chat_id": "{ID}",
      "text": "Hello",
      "reply_markup": {
        "inline_keyboard": [
          [{"text":"Click","callback_data":"1"}]
        ]
      }
    }'
    

3. 再确认基础参数的正确性

虽然你能成功发送消息,但还是要快速核对:

  • Bot Token有没有复制错误,有没有多余的空格或字符
  • Chat ID是目标用户的正确ID吗?如果是群组,要确保Bot在群组里有正常的消息权限

4. 排查Bot是否被临时限制

如果Bot短时间内请求过于频繁,可能会被Telegram临时限制。可以调用getMe接口确认Bot状态是否正常:

https://api.telegram.org/bot{TOKEN}/getMe

最后一步验证

如果上面都排查过了,做个极简测试:

  1. 调用getUpdates?offset=999999清空之前的历史更新
  2. 重新发送带内联按钮的消息
  3. 立刻点击按钮
  4. 马上调用getUpdates查看结果

如果这时候能收到callback_query,那就是你的更新处理逻辑有问题;如果还是收不到,可能需要联系Telegram Bot支持,但这种情况非常少见。

内容的提问来源于stack exchange,提问作者Iharob Al Asimi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:13:55