设置Telegram Webhook后请求头缺失X-Telegram-Bot-Api-Secret-Token求助
解决Telegram Webhook未发送X-Telegram-Bot-Api-Secret-Token请求头的问题
可能的操作错误及解决步骤
1. curl命令中的参数分隔符错误
你在setWebhook命令里用了HTML转义的&作为参数分隔符,但终端无法正确解析这个字符,导致secret_token参数没有被Telegram API识别到。
修正后的命令:
curl "https://api.telegram.org/bot6359000876:XXX/setWebhook?url=https://XXX.execute-api.us-east-1.amazonaws.com/development/webhook&secret_token=abc"
把&替换成普通的&,确保url和secret_token两个参数能被正确拆分传递。
2. 未确认Webhook设置是否成功
执行setWebhook命令后,必须检查返回的JSON结果,确认ok字段为true,示例返回:
{"ok":true,"result":true,"description":"Webhook was set"}
如果返回ok: false,说明设置失败,需根据description字段的提示排查问题(比如URL不可达、Bot Token错误等)。
3. AWS API Gateway未传递请求头
如果Webhook设置成功但仍收不到请求头,可能是API Gateway没有把X-Telegram-Bot-Api-Secret-Token传递给你的后端:
- 进入AWS API Gateway控制台,找到对应的API和
development阶段 - 打开该API的集成请求设置
- 在「HTTP头」区域,添加
X-Telegram-Bot-Api-Secret-Token,映射值设为method.request.header.X-Telegram-Bot-Api-Secret-Token - 重新部署API到
development阶段
4. 验证Webhook配置信息
可以通过getWebhookInfo命令查看当前Webhook的详细配置,确认secret_token是否已正确设置:
curl "https://api.telegram.org/bot6359000876:XXX/getWebhookInfo"
返回结果中如果包含secret_token字段,说明配置已生效;如果没有,需重新执行修正后的setWebhook命令。
内容的提问来源于stack exchange,提问作者Rodrigo
相关产品推荐
相关产品推荐

