← Все вопросы

Как отправить ботом картинку или фото в aiogram?

Задан 7 месяцев назад1.1к просмотров2 ответа
5

Хочу, чтобы по команде /cat бот присылал картинку. Картинка лежит у меня в папке с проектом (cat.jpg). Как её отправить через aiogram 3?

2 ответа

9
✓ Принятый ответ — помог автору

Для файла с диска используется FSInputFile, а отправка — через message.answer_photo:

from aiogram.types import FSInputFile

@dp.message(Command("cat"))
async def cat(message: Message):
    photo = FSInputFile("cat.jpg")
    await message.answer_photo(photo, caption="Вот тебе котик!")

FSInputFile("cat.jpg") берёт файл рядом со скриптом (FS = файловая система). caption — необязательная подпись под фото.

Если картинка лежит в интернете, можно передать просто URL строкой: await message.answer_photo("https://example.com/cat.jpg").

4

Аналогично шлются и другие вложения: answer_document для файлов (pdf, txt), answer_sticker для стикеров (нужен file_id стикера), answer_audio для музыки. Логика та же: FSInputFile("путь") для файла с диска или URL/file_id для готового.

Ваш ответ

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