Ошибка при скачивании фотографии, которую отправил пользователь боту в телеграмм
пытаюсь скачать фото которое отправил пользователь, но получаю такую ошибку TypeError: a bytes-like object is required, not '_io.BytesIO'. Как исправить код? Помогите пожалуйста, код ниже.
import asyncio
import os
from io import BytesIO
from aiogram import Bot, Dispatcher, F
from aiogram.filters import Command
from aiogram.types import Message
from testBot.token_bot import token
bot = Bot(token=token)
dp = Dispatcher()
by = BytesIO()
@dp.message(Command('start'))
async def bot_start(message: Message):
await message.answer(text='привет.')
@dp.message(F.photo)
async def bot_photo(message: Message):
photo_id = message.photo[-1].file_id
file_photo = await bot.get_file(photo_id)
file_name, file_extension = os.path.splitext(file_photo.file_path)
download_file_photo = await bot.download_file(file_photo.file_path)
src = 'photo/' + photo_id + file_extension
with open(src, 'wb') as new_file:
new_file.write(download_file_photo)
async def main():
await dp.start_polling(bot)
asyncio.run(main())
Ответы (1 шт):
Автор решения: Сергей
→ Ссылка
Для того, чтобы скачать фото из серверов телеграмм, необходимо использовать следующий код:
filename="example/photo.jpg"
await bot.download(
message.photo[-1].file_id,
destination=filename
)