如何使用 caption/text 发送电报 mediaGroup

How to send telegram mediaGroup with caption/text

我目前正在使用 python-telegram-bot,基本上我想用它实现的是发送这样的电报消息:

所以消息由 2+ photos/videos 和下面的文本消息组成。

我已经尝试过的:

  1. send_message方式发送消息,包括图片网址,但只显示1张图片在正文下方

  2. 正在使用 send_media_group, but this method has no caption parameter as send_photo.

  3. 发送媒体组

你应该使用 sendMediaGroup, where you can specify media field with an array of photo/video objects 但诀窍是设置 caption 属性 仅 数组的第一个元素 .在这种情况下,telegram 将在媒体内容下方显示标题。

如果您为多个元素指定标题,只有当您分别单击每张照片的照片预览时,电报才会显示它们。

send_media_group 有效,但在创建 media_group 时必须添加标题,并且只能添加到第一张图片。假设我们有三个图像 img0.pngimg1.pngimg2.png,我们使用 InputMediaPhoto 将它们添加到 media_group,参数 caption 等于我们只想为第一张图片发送的文本,否则我们将 caption 设置为 ''.

import telegram
from telegram import InputMediaPhoto

TOKEN = '' # token to access the HTTP API of your bot created with @BotFather
CHANNEL_ID = '' # id of your channel, for example @durov
bot = telegram.Bot(token = TOKEN)
media_group = []
text = 'some caption for album'
for num in range(3):
    media_group.append(InputMediaPhoto(open('img%d.png' % num, 'rb'), 
                                       caption = text if num == 0 else ''))
bot.send_media_group(chat_id = CHANNEL_ID, media = media_group)