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

Telegram机器人调用sendMessage返回chat not found错误修复方案

错误原因

400 Bad Request: chat not found触发原因有两点:

  1. 未完成用户与机器人的会话初始化,Telegram禁止机器人主动向未给自己发过消息的用户推送内容
  2. 直接使用@个人用户名作为chat_id参数,该参数在未完成会话绑定时无法被接口识别,且部分场景下用户名匹配存在优先级问题
遗漏配置与修复步骤
  • 配置机器人隐私权限
    打开Telegram找到BotFather,发送/setprivacy指令,选中你创建的目标机器人,选择Disable关闭隐私模式。未关闭该模式时,机器人无法接收你主动发送的普通消息,无法完成会话绑定。
  • 主动发起会话初始化
    进入你创建的机器人的对话窗口,发送任意内容,推荐直接发送/start指令。

    你之前发消息机器人无响应属于正常情况,刚通过BotFather创建的机器人默认没有配置任何消息回复逻辑,只要消息成功出现在对话窗口内,就代表初始化步骤完成,不需要机器人做出回复。

  • 获取正确的chat_id
    不要使用@用户名作为chat_id参数,调用接口获取当前账号对应的数字ID:
    浏览器访问地址https://api.telegram.org/bot<你的机器人API Key>/getUpdates,在返回的JSON结构中找到message.chat.id对应的字段值,该值为一串纯数字,就是当前和机器人对话账号的有效chat_id。

    如果调用getUpdates返回的结果为空,回到机器人对话窗口再发送一条新消息,刷新接口页面即可拿到对应结果。

  • 重新测试发消息接口
    将原请求中的chat_id参数替换为上一步拿到的数字ID,构造请求:
    https://api.telegram.org/bot<你的机器人API Key>/sendMessage?chat_id=<获取到的数字chat_id>&text=Hello
    请求返回"ok": true即为调用成功,你的Telegram账号会收到机器人发送的对应消息。
电脑端发通知的实现提示
  • 妥善保管机器人API Key,泄露后他人可直接控制该机器人发送消息
  • 电脑端不需要接入复杂SDK,直接通过任意编程语言发起HTTP请求调用上述sendMessage接口,即可实现通知推送,GET、POST请求方式均支持
  • 如果后续出现调用失败,优先检查是否在Telegram客户端手动删除了和机器人的对话窗口,删除对话会重置会话状态,需要重新给机器人发一条消息完成初始化即可恢复

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 20:21:07