Telegram Bot API浏览器调用sendMessage失效,咨询原因及更新情况
Telegram Bot API浏览器调用失效问题分析
近期API更新情况
Telegram Bot API最近几年一直在收紧对前端/浏览器直接调用的限制,主要变化包括:
- 新增严格的跨域资源共享(CORS)策略,浏览器直接发请求会被同源策略拦截,返回CORS错误
- 像
sendMessage这类核心接口的权限校验逻辑调整,不再允许未经过后端代理的前端请求
浏览器调用失效的核心原因
- CORS拦截:为了API安全,Telegram限制了非信任域名的跨域请求,浏览器的同源策略会直接阻断这类请求,导致拿不到有效响应
- Token安全防护:前端直接调用时Token会暴露在浏览器中,风险极高,官方通过限制前端调用强制开发者用后端代理,避免Bot被滥用
- 请求方式限制:虽然
sendMessage支持GET请求,但官方更推荐用POST,而且GET请求的参数明文传输、长度限制等问题也是官方限制的原因之一
解决建议
- 必须通过后端服务代理Telegram Bot API请求,后端用POST方式调用
https://api.telegram.org/bot<你的Token>/sendMessage,携带chat_id和text参数 - 后端请求时要确保请求头设置正确,避免被Telegram的安全策略拦截
内容的提问来源于stack exchange,提问作者toygr
相关产品推荐
相关产品推荐

