@Radikulit
Python, Go разработчик

Aiogram Bot: как отправить несколько медиа одним фотоколлажом?

Если сократить максимално бота, получется такой код:
import logging
import conceptual_config

from aiogram import Bot, Dispatcher, executor, types
from aiogram.utils.markdown import *



API_TOKEN = conceptual_config.TOKEN  # Токен бота из личного файла

# Configure logging
logging.basicConfig(level=logging.INFO)

# Initialize bot and dispatcher
bot = Bot(token=API_TOKEN, parse_mode="html")
dp = Dispatcher(bot)



@dp.message_handler(commands=['start'])
async def send_welcome(message: types.Message):

    await message.answer("Бот принял команду /start")
    media_txt = "Превосходная \nФотография"

    media = [types.InputMediaPhoto('media/Starbucks_Logo.jpg', 'Превосходная фотография'), types.InputMediaPhoto('media/Starbucks_Logo_2.jpg')]  # Показываем, где фото и как её подписать
    await bot.send_chat_action(call.message.chat.id, types.ChatActions.UPLOAD_DOCUMENT)  # Устанавливаем action "Uploading a document..."
    await bot.send_media_group(call.message.chat.id, media=media)  # Отправка фото


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


Но всё-равно получаю ошибку:
aiogram.utils.exceptions.BadRequest: Wrong http url specified

Брал с этого источника: https://surik00.gitbooks.io/aiogram-lessons/conten...
Не могу выяснить, в чём причина и чего не хватает.

P.S Есть вот такой рабочий вариант:
media = [types.InputMediaPhoto('media/Starbucks_Logo.jpg', 'Превосходная фотография')]  # Показываем, где фото и как её подписать
media.append(types.InputMediaPhoto('media/Starbucks_Logo_2.jpg'))
await types.ChatActions.upload_photo()  # Установка action "Отправка фотографии..."
await bot.send_media_group(message.chat.id, media=media)  # Отправка фото

Но охота разобраться и с тем кодом.
  • Вопрос задан
  • 16750 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
media = types.MediaGroup()
media.attach_photo(types.InputFile('media/Starbucks_Logo.jpg'), 'Превосходная фотография')
media.attach_photo(types.InputFile('media/Starbucks_Logo_2.jpg'), 'Превосходная фотография 2')
await bot.send_media_group(call.message.chat.id, media=media)


Есть в примерах по библиотеке
https://github.com/aiogram/aiogram/blob/dev-2.x/ex...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@ArchieWh1te
Python dev, Web dev
Aiogram 3

В моем случае отправка файлов EXCEL с раширением .xlsx через инлаин кнопку скачать

import time

import glob

from aiogram import F, Bot

from aiogram.types import CallbackQuery, FSInputFile

router = Router()

@router.callback_query(F.data.startswith('download_price'))
async def download_price(call: CallbackQuery, bot: Bot):
await call.message.delete()
await call.answer(cache_time=2)
for file in glob.glob('./excel/*.xlsx'):
    file_input = FSInputFile(file)
    file_name = await bot.send_document(call.message.chat.id, file_input , caption=f'Актуальный на <b>{time.strftime("%d-%m-%Y", time.localtime())}</b>')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы