我应该如何在电报 python bot 中使用 parse_mode='HTML'?

Fed*_*ico 7 python bots telegram python-telegram-bot telegram-bot

我正在尝试使用 Telegram API 的send_photo()方法在带有机器人的频道中发送消息。它需要一个标题参数(类型String),但我无法通过parse_mode='HTML'参数格式化它...

如果我使用这样的东西:

send_photo(chat_id, photo, caption="<b>Some text</b>", parse_mode='HTML') 
Run Code Online (Sandbox Code Playgroud)

它发送消息但没有任何格式。有人知道为什么吗?谢谢

Ami*_*ani 10

首先,你需要导入 ParseMode telegram这样的:

from telegram import ParseMode
Run Code Online (Sandbox Code Playgroud)

然后,您只需要指定parse_mode=ParseMode.HTML. 这是一个工作示例:

from telegram import ParseMode
Run Code Online (Sandbox Code Playgroud)

我们可以看到它的工作原理:

作品

更新:实际上,两者parse_mode='html'(如@slackmart所建议的)和parse_mode='HTML'您使用自己的工作都为我工作!

另一个更新(根据您的评论):您可以使用多个标签。这里有一个的例子,有hyperlinkbolditalic

多个标签

另一个更新:关于您的评论

...我对 HTML 标签有什么限制吗?我不能使用类似<img><br>画线的东西

诚实地,

试试看

这就是我所做的!

现在您正在尝试格式化图像的标题,使用HTML,这意味着您正在格式化 a text,因此很明显,您不能使用“类似<img>.”的内容。它必须是“文本格式标记”(加号<a>)。甚至不是全部!我相信你只能使用这些:<a><b><strong><i><em>

如果您尝试使用像 那样的文本格式标记<del>,则会出现以下错误:

无法解析实体:在字节偏移 148 处不受支持的起始标记“del”

这是一种耻辱! 我希望能够在图像的标题中做这样的事情。或类似的东西!