簡體   English   中英

如何通過 Telegram Bot API 在消息中發送嵌入圖像和文本

[英]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 + '">&#8205;</a>

&#8205; -> 從不顯示在消息中

您可以使用零寬度空間技巧。 適用於 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.",
];

結果:

在此處輸入圖像描述

注意:零寬度空格在括號“[​​​​​​​​​​]”之間。

使用<a href=http://.......jpg>..</a>的方法將在文本下方顯示圖像的預覽。 像這樣:

一個href樣本

如果您發送帶有標題的圖像,效果會更好。

字幕樣本

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)

你應該只添加字幕

bot.send_video(user_id, video, caption='some interesting 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM