[英]How to send an Embedded Image along with text in a Message via Telegram Bot API
使用 Telegram Bot API,
我知道可以通過https://core.telegram.org/bots/api#sendphoto發送圖像
但是,如何將遠程圖像嵌入到格式化消息中?
我要發送的消息可以與帶有粗體標題、圖像和帶有鏈接的較長文本的新聞文章進行比較。 我想出了如何使用markdown創建粗體文本和鏈接,但我在插入圖像時失敗了。 我們怎么能做到這一點?
您必須在 HTML 中設置 ParseMode 並在 A 標記中設置您的 Image Url,如下所示:
<a href="' + image + '">‍</a>
‍
-> 從不顯示在消息中
您可以使用零寬度空間技巧。 適用於 Markdown 和 HTML 解析模式。
降價:
$data = [
'chat_id' => $chat_id,
'parse_mode' => 'markdown',
'text' => "[](https://upload.wikimedia.org/wikipedia/commons/thumb/0/02/Stack_Overflow_logo.svg/200px-Stack_Overflow_logo.svg.png) Some text here.",
];
結果:
注意:零寬度空格在括號“[]”之間。
import requests
text="testing"
img="http://imageurl.png"
r = requests.get('https://api.telegram.org/botyour_token_here/sendMessage?chat_id=@your_channel_here&parse_mode=markdown&text='+"[]("+img+")"+text)
使用sendPhoto
而不是sendMessage
是實現此目的的一種更簡潔的方法,具體取決於您的用例,例如:
import io
import json
import requests
telegram_bot_token = 'INSERT_TOKEN_HERE'
chat_id = '@INSERT_CHAT_ID_HERE'
bot_url = 'https://api.telegram.org/bot' + telegram_bot_token + '/sendPhoto'
img_url = 'https://upload.wikimedia.org/wikipedia/commons/thumb/0/02/Stack_Overflow_logo.svg/200px-Stack_Overflow_logo.svg.png'
msg_txt = '<b>Stack Overflow Logo</b>'
msg_txt += '\n\nStack Overflow solves all our problems'
payload = {
'chat_id': chat_id,
'caption': msg_txt,
'parse_mode': 'html'
}
remote_image = requests.get(img_url)
photo = io.BytesIO(remote_image.content)
photo.name = 'img.png'
files = {'photo': photo}
req = requests.post(url=bot_url, data=payload, files=files)
response = req.json()
print(response)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.