gpt4 book ai didi

python - 我应该如何在 Telegram python 机器人中使用 parse_mode ='HTML' ?

转载 作者:行者123 更新时间:2023-12-01 00:57:48 26 4
gpt4 key购买 nike

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

如果我使用这样的东西:

send_photo(chat_id, photo, caption="<b>Some text</b>", parse_mode='HTML') 

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

最佳答案

首先,您需要导入 ParseMode 来自 telegram像这样:

from telegram import ParseMode

然后,您只需指定 parse_mode=ParseMode.HTML 。这是一个有效的示例:

def jordan(bot, update):
chat_id = update.message.chat.id
with open('JordanPeterson.jpg', 'rb') as jordan_picture:
caption = "<a href='https://twitter.com/jordanbpeterson'>Jordan B. Peterson</a>"
bot.send_photo(
chat_id,
photo=jordan_picture,
caption=caption,
parse_mode=ParseMode.HTML
)

我们可以看到它有效:

works

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

另一个更新(根据您的 comment ):您可以使用多个标签。这是一个示例,其中 hyperlink , bold ,和italic :

multiple tags

另一个更新:关于您的 comment :

...do I have any limitations on HTML tags? I can't use something like <img> or <br> to draw a line

老实说,

try and find out

我就是这么做的!

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

如果您尝试使用文本格式标记,如 <del> ,它会给你这个错误:

Can't parse entities: unsupported start tag "del" at byte offset 148

真是可惜了! 我希望能够在图像的标题中执行类似的操作。或类似的操作!

关于python - 我应该如何在 Telegram python 机器人中使用 parse_mode ='HTML' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56104009/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com