Получение file_id в aiogram3.4?

Для получения file_id в библиотеке aiogram версии 3.4 вам понадобится использовать метод bot.get_file() вместе с указанием file_unique_id.

Первым шагом необходимо получить file_unique_id, которое является уникальным идентификатором файла. Вы можете получить это значение, например, из сообщения, где оно содержится в атрибуте message.document.file_id для документа или message.photo[-1].file_id для фотографии (предполагая, что вы используете последнюю фотографию из группы фотографий).

Далее, используя file_unique_id, вызвите метод bot.get_file() и передайте file_unique_id в качестве аргумента. Этот метод вернет объект класса telegram.File с информацией о файле. В этом объекте вы можете найти file_id, который будет использоваться для работы с файлами в будущем.

Приведу пример кода, демонстрирующего этот процесс:

import asyncio
from aiogram import Bot, types


async def get_file_id():
    # Создаем нового бота
    bot = Bot(token="YOUR_TOKEN")

    # Получаем сообщение с файлом
    message = types.Message(
        message_id=1,
        document=types.Document(
            file_id="FILE_UNIQUE_ID"
        )
    )

    # Получаем информацию о файле
    file_obj = await bot.get_file(message.document.file_id)

    # Получаем file_id
    file_id = file_obj.file_id

    return file_id


if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    file_id = loop.run_until_complete(get_file_id())
    print(file_id)

Обратите внимание, что в данном примере требуется заменить "YOUR_TOKEN" и "FILE_UNIQUE_ID" на свои значения.