Как в aiogram3 отправить фото
Пишу бота на aiogram3, столкнулся с такой проблемой - бот не отправляет фото. Читал документацию и написал так же, но безуспешно. Этот код работает только с ссылкой на фото из интернета, а фото из папки не отправляет, писал разный путь до фото, но ошибка всегда одна и та же.
from aiogram import Bot
from aiogram.types import Message, FSInputFile
photo = FSInputFile("photo_2020-09-03_03-42-41.jpg")
async def menu(message: Message):
await message.answer_photo(photo=photo, caption="hi")
Выдаёт следующую ошибку
aiogram.exceptions.TelegramNetworkError: ClientOSError: [Errno 2] Can not write request body for https://api.telegram.org/bot{тут токен}/sendPhoto
Ответы (2 шт):
Автор решения: Андрей Ржавитин
→ Ссылка
Попробуйте заменить photo = FSInputFile("photo_2020-09-03_03-42-41.jpg") на photo = open('photo_2020-09-03_03-42-41.jpg', 'rb')
Я не уверен что это поможет, но с PyTelegramBotApi я делаю только так.
Автор решения: Creeper Hack
→ Ссылка
photo = InputFile("files/test.png")
await bot.send_photo(chat_id=message.chat.id, photo=photo)
ИЛИ
вы можете отправлять фото по file_id
@dp.message_handler(content_types=['photo'])
async def photo_handler(msg: types.Message):
await msg.answer(msg.photo[-1].file_id)
просто отправьте боту фото и вы получите file_id фото
async def photo_handler(msg: types.Message):
await msg.answer_photo(FILE_ID)