一句话结论
Bot 没进群、chat_id 写错、用户没和 Bot 私聊过,按这四步过一遍基本就解。
适用场景
- Telegram 推送一直失败
- 群里 Bot 不回话
- 面板里 chat_id 看着对,还是报错
常见现象
- API 返回 Bad Request: chat not found
- 面板里发送测试消息一直失败
- Webhook 日志里 chat_id 不存在
原因解释
- Bot 没被邀请到目标群或频道
- chat_id 写成了用户名,或者多了空格、负号缺失
- 用户没主动和 Bot 私聊过,Bot 无法主动发消息
- Bot 在频道里没有发消息权限
解决步骤
- 把 Bot 加到群,给它管理员或发消息权限
- 用 getUpdates 接口确认真实的 chat_id
- 私聊场景下让用户先发一条 /start 给 Bot
- 把 chat_id 重新填进面板,再发一次测试消息
可复制命令
curl https://api.telegram.org/bot<TOKEN>/getUpdates
仍然不行怎么办
- 还是失败的话,换一个新群再试,排除是不是历史群被限制
- 或者把日志发到排错入口
小白先准备什么
- 在 @BotFather 创建好 Bot,拿到 Token
- 确认 Bot 已经被拉进目标群,或者用户已经私聊过 Bot
- 准备好 curl 或 Postman,能手动调 Telegram API
- 知道自己要发的是群消息还是私聊消息
验收标准
- 用 getUpdates 能看到正确的 chat_id
- 用 sendMessage 手动发一条消息能成功
- 面板里的测试消息功能正常
- 群消息和私聊消息都能正常收发
可复制排查提示词
把下面这段发给 AI,让它帮你确认 chat_id 是否正确:
我的 Telegram Bot 报 chat not found 错误。
Bot Token:<前几位>...<后几位>(脱敏)
目标场景:<群消息/私聊/频道>
我填的 chat_id:<你填的值>
请帮我:
1. 确认 chat_id 格式是否正确(群是负数、超级群是 -100 开头)
2. 给出用 getUpdates 获取正确 chat_id 的完整 curl 命令
3. 给出发送测试消息的 curl 命令
4. 如果是权限问题,告诉我怎么设置
常见误区
- 误区:chat_id 就是用户名 → 实际上 chat_id 是一串数字,群的 chat_id 是负数
- 误区:Bot 创建好就能发消息 → 用户必须先 /start 过,Bot 才能主动私聊
- 误区:把 Bot 加到群就行 → 还需要给 Bot 发消息权限(管理员或允许发消息)
- 误区:chat_id 永远不变 → 群升级为超级群后 chat_id 会变,需要重新获取
还卡着?
可以把截图、日志、需求单或当前页面链接发到 zhemuy@gmail.com。