You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 02:35:01