0

Пример как отправить несколько изображений в Телеграм, используя Telegram Bot API и Requests с помощью метода /sendMediaGroup

Если задать caption только для первой изображения, то будет “текст для отправки” будет отображён как сообщение. Если задать для каждого изображения, то текст будет виден только при открытии картинки.

Таким методом можно отправлять от 2 до 10 изображений. Для отправки видео в “type” поменяйте с “photo” на “video”

import requests

TOKEN = "ваш токен"
CHAT_ID = "айди чата/канала"


request_url = "https://api.telegram.org/bot" + TOKEN + "/sendMediaGroup"
params = {
    "chat_id": CHAT_ID
    , "media":
    """[
        {
            "type": "photo"
            , "media": "attach://random-name-1"
            ,"caption": "текст для отправки"},
        {
            "type": "photo"
            , "media": "attach://random-name-2"}
    ]"""
}

files = {
    "random-name-1": open("/data1.png", "rb") #ссылка на локальный файл
    , "random-name-2": open("/data2.png", "rb")#ссылка на локальный файл
}

result = requests.post(request_url, params= params, files= files)
print(result.text)

Официальная документация Telegram для метода /sendMediaGroup: https://core.telegram.org/bots/api#sendmediagroup

ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
mediaArray of InputMediaAudioInputMediaDocumentInputMediaPhoto and InputMediaVideoYesA JSON-serialized array describing messages to be sent, must include 2-10 items
disable_notificationBooleanOptionalSends messages silently. Users will receive a notification with no sound.
reply_to_message_idIntegerOptionalIf the messages are a reply, ID of the original message
allow_sending_without_replyBooleanOptionalPass True, if the message should be sent even if the specified replied-to message is not found
Возможные параметры

↑ Наверх