← Все вопросы
Как отправить ботом картинку или фото в aiogram?
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 для готового.
Ваш ответ
Войдите, чтобы ответить на вопрос.