Telegram Bot回复用户时出现chat not found错误问题排查问询
Telegram Bot 回复用户400错误问题排查
原因排查结论
1 首先排除Telegram推送chat_id有误的可能性
用户主动向Bot发起会话时,Telegram返回的webhook数据中chat_id为官方生成的唯一有效标识,不会出现推送错误的情况。
你当前请求的chat_id参数为带前后空格的字符串" 123456789 ",这是最常见的报错原因:Telegram API对数值类参数的空白字符兼容性不稳定,部分场景下会直接判定为无效ID,返回chat not found错误。
2 参数修正后仍报错则为用户隐私设置导致
如果将chat_id移除所有空白字符、转为纯数值类型发起请求后仍然报错,均为用户侧操作或隐私设置导致,常见场景如下:
- 用户主动发起会话后,立刻删除了与Bot的对话窗口,或拉黑了Bot,此时Bot失去向该用户发消息的权限
- 部分用户开启了严格的隐私限制,即使主动发起过一次会话,也会在短时间内收回Bot的主动消息推送权限
修复建议
- 所有发消息请求前,先对从webhook获取的chat_id做标准化处理:移除所有前后空白字符,统一转为数值类型传递,不要使用字符串格式
- 收到
chat not found报错后,直接标记该用户为不可触达状态,无需重复发起请求 - 可在用户首次发起会话时立刻回复提示,引导用户保留对话窗口、不要拉黑Bot,避免后续无法推送服务内容
内容的提问来源于stack exchange,提问作者Isaac
相关产品推荐
相关产品推荐

