如何在Telegram sendMessage API调用中添加no_webpage与silent flags
解决Telegram sendMessage中flags参数不生效的问题
首先明确:你用flags参数的方式不对,Telegram Bot API的sendMessage接口没有名为flags的参数,这就是你设置后没效果的核心原因。
要实现你要的两个功能,应该直接用对应的独立参数:
disable_web_page_preview:对应你说的no_webpage,设为True即可禁用网页链接预览disable_notification:对应你说的silent,设为True即可发送无通知的静默消息
不需要做位编码,直接把这两个参数加到请求里就行,不管是作为URL参数还是放在POST请求体中都能生效。
示例代码(使用requests发送POST请求)
import requests # 替换为你的实际值 TOKEN = "你的机器人令牌" CHAT_ID = "目标聊天ID" TEXT = "你的消息内容" # 请求地址 api_url = f"https://api.telegram.org/bot{TOKEN}/sendMessage" # 所有参数放在POST请求体中(推荐方式) request_payload = { "chat_id": CHAT_ID, "parse_mode": "HTML", "text": TEXT, "disable_web_page_preview": True, "disable_notification": True } response = requests.post(api_url, json=request_payload) # 打印响应结果排查问题 print(response.json())
如果你坚持要把部分参数放在URL中,仅将消息文本放在POST请求体,也可以这么写:
# 部分参数拼接在URL里 api_url = f"https://api.telegram.org/bot{TOKEN}/sendMessage?chat_id={CHAT_ID}&parse_mode=HTML&disable_web_page_preview=True&disable_notification=True" # 仅消息文本放在POST体 request_payload = {"text": TEXT} response = requests.post(api_url, json=request_payload)
这种方式完全不需要注册额外应用,就是最基础的Bot API调用,完全符合你的简易需求。
内容的提问来源于stack exchange,提问作者Yuri
相关产品推荐
相关产品推荐

