Chrome Headless发送Telegram频道消息失效,求可行解决方案
可行替代方案
1. 用curl命令(跨平台首选)
Telegram Bot API支持GET和POST请求,用curl直接发请求比Chrome Headless靠谱得多,命令格式如下:
GET方式:
curl "https://api.telegram.org/botxyz/sendMessage?chat_id=xyz&text=my text message"
POST方式(更推荐,适配长文本和特殊字符):
curl -X POST "https://api.telegram.org/botxyz/sendMessage" -d "chat_id=xyz&text=my text message"
要是文本里有空格或特殊符号,记得用引号把参数值包起来,或者提前做URL编码。
2. 写Python脚本(适合复杂逻辑)
如果需要循环发送、处理返回结果这类复杂操作,用Python的requests库很方便:
先装requests:
pip install requests
然后写脚本:
import requests bot_token = "xyz" chat_id = "xyz" text = "my text message" url = f"https://api.telegram.org/bot{bot_token}/sendMessage" params = {"chat_id": chat_id, "text": text} # GET请求 response = requests.get(url, params=params) # 或者用POST请求,更稳定 # response = requests.post(url, data=params) print(response.json())
3. PowerShell命令(Windows环境直接用)
Windows用户不用装额外工具,直接用PowerShell发请求:
# GET方式 Invoke-RestMethod -Uri "https://api.telegram.org/botxyz/sendMessage?chat_id=xyz&text=my text message" -Method Get # POST方式 Invoke-RestMethod -Uri "https://api.telegram.org/botxyz/sendMessage" -Method Post -Body @{chat_id="xyz"; text="my text message"}
补充:Chrome Headless失效原因
新版Chrome Headless的默认参数(比如User-Agent、请求处理逻辑)改了,Telegram的API可能拦截了这类浏览器发起的请求。而且Chrome Headless本来是用来做页面渲染的,不是专门发API请求的工具,用它来调API本来就不是正确用法,出问题很正常。
内容的提问来源于stack exchange,提问作者Alex Fx
相关产品推荐
相关产品推荐

