Ошибка в отправке сообщения pyrogram и aiogram
в моем случае, к аккаунту телеграмм - привязан бот pyrogram, берет сообщения по необходимым критериям с определенного чата, пересылает их через бота на aiogram v2. В случае с текстом - работало замечательно все, но необходимо было привязать учёт картинок в сообщении. Для этого - использовал этот код:
if message.photo:
photo = list(message.photo.file_unique_id)
photo[1], photo[-1] = "Q", "t-"
photo = ''.join(str(x) for x in photo)
await bot1.send_photo(photo=photo, caption=text, reply_markup=keyboard,chat_id=o[0])
Получаю ошибку, в которой указывается это: Wrong remote file identifier specified: can't unserialize it. wrong last symbol
Методом исследования понял, что уникальный файл ид изображения - AQAD2tAxGysReEt-, в то время как pyrogram выдаёт AgAD2tAxGysReEs, именно поэтому в строке номер 3 менял 1 и последний символ, но ошибка оставалась. Что делать со всем этим? Pyrogram и aiogram несовместимы? Дело в том, что уникальный id изображения разный? Очень прошу помочь, за два дня уже сломал голову... Или, если можно - как реализовать нечто похожее на это?
Ответы (1 шт):
Можешь скачивать фото и отправлять их
file_id = msg.photo[3].file_id
resp = requests.get(f"https://api.telegram.org/bot{TOKEN}/getFile?file_id={file_id}")
img_path = resp.json()["result"]["file_path"]
img = requests.get(f"https://api.telegram.org/file/bot{TOKEN}/{img_path}")
img = Image.open(io.BytesIO(img.content))
if not os.path.exists("static"):
os.mkdir("static")
img_name = secrets.token_hex(8)
img.save(f"static/{img_name}.png", format="PNG")