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

如何使用requests库调用Telegram接口发送带#号标签的消息?

问题解决方案

错误原因

  • 手动拼接URL查询参数时,#属于URL特殊锚点分隔符,会导致#后的内容无法被提交到Telegram服务端,触发接口报错
  • 手动替换#为%23后直接拼接URL,会被requests自动做二次转义,最终Telegram收到的是二次转义后的内容,显示出来就是%23Hello

正确实现

不要手动拼接查询参数,直接使用requests内置的params参数自动完成标准化URL编码,代码如下:

import requests

def sendMsg(text):
    token = BOT_TOKEN
    chat_id = CHANNEL_ID
    params = {
        "chat_id": chat_id,
        "text": text
    }
    requests.get(f"https://api.telegram.org/bot{token}/sendMessage", params=params)

# 直接传入带#的原文即可正常发送
sendMsg('#Hello')

该方案中requests会自动把#转义为%23提交给接口,Telegram收到后会自动解析回#,既能正常发送不会报错,也能正确显示标签效果。

内容的提问来源于stack exchange,提问作者Mr. AMI

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:57:04