Telegram bot, python Как переслать сообщение со всеми изображениями в нем

Рейтинг: 0Ответов: 1Опубликовано: 21.04.2023

Помогите, пожалуйста. Знаю, что если в телеге отправить в одном сообщении несколько изображений, то каждое изображение будет считаться как отдельное сообщение (message.id). Методом forward_Message можно переслать только одно сообщение (message.id) и действительно руками в телеге если зажать на определенное изображение из сообщения, то перешлется только оно. Но если пальцем зажать (или щелкнуть мышкой, если с десктопа) на сообщении с несколькими изображениями на поле с текстом и нажать "Переслать сообщение", то пересылается весь контент с текстом одним сообщением. Есть ли способ сделать тоже самое и в коде? Или кодом данное действие не предусмотрено?

Ответы

▲ 0

Используйте MediaGroup для отправки галереи. Пример:

from aiogram import Bot, Dispatcher, executor, filters, types


API_TOKEN = ''

bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)


@dp.message_handler(filters.CommandStart())
async def send_welcome(message: types.Message):
    await types.ChatActions.upload_photo()
    media = types.MediaGroup()
    media.attach_photo(types.InputFile('photo1.png'), 'Фото 1')
    media.attach_photo(types.InputFile('photo2.png'), 'Фото 2')
    media.attach_photo(types.InputFile('photo3.png'), 'Фото 3')
    media.attach_photo(types.InputFile('photo4.png'), 'Фото 4')
    await message.reply_media_group(media=media)


if __name__ == '__main__':
    executor.start_polling(dp, skip_updates=True)