Чтобы отправить фото пользователя администратору с помощью библиотеки Aiogram, вам нужно будет использовать методы отправки медиа. В этом примере я покажу, как отправить как одно изображение, так и группу изображений (галерею) администратору.
### Установка Aiogram
Если вы ещё этого не сделали, сначала установите библиотеку Aiogram:
```bash
pip install aiogram
```
### Основной код
Вот примерный скелет кода, который демонстрирует, как отправить одно изображение и несколько изображений боту-администратору.
```python
from aiogram import Bot, Dispatcher, types
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher import Storage
from aiogram.utils import executor
API_TOKEN = 'ВАШ_API_TOKEN'
ADMIN_ID = 'Ваш ID администратора'
bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot, storage=MemoryStorage())
# Хэндлер для получения фото от пользователя
@dp.message_handler(content_types=types.ContentType.PHOTO)
async def handle_photo(message: types.Message):
# Получаем файл изображения
file_id = message.photo[-1].file_id
file = await bot.get_file(file_id)
# Отправляем одно изображение администратору
await bot.send_photo(ADMIN_ID, photo=file.file_id, caption='Получено одно изображение.')
# Если нужно отправить несколько изображений, например, вы решите сохранить их в список
# и потом отправить все сразу
# await send_multiple_photos(ADMIN_ID, [file_id1, file_id2, file_id3])
# Функция для отправки нескольких изображений
async def send_multiple_photos(chat_id, photo_ids):
media = []
for photo_id in photo_ids:
media.append(types.InputMediaPhoto(photo_id))
# Отправляем группу изображений
await bot.send_media_group(chat_id, media)
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
```
### Объяснение кода
1. **Импортируем необходимые библиотеки и создаем объект бота**.
2. **Обработчик сообщений**: `@dp.message_handler(content_types=types.ContentType.PHOTO)` обрабатывает фотографии, отправленные пользователем.
3. **Отправка фотографии администратору**: После получения фотографии от пользователя мы извлекаем `file_id` и отправляем её администратору.
4. **Функция для отправки нескольких изображений**: `send_multiple_photos` формирует список изображений с помощью `InputMediaPhoto` и использует `bot.send_media_group`, чтобы отправить их в одном сообщении.
### Отправка нескольких фотографий
Чтобы отправить несколько фотографий сразу, вы можете вызвать `send_multiple_photos` с массивом идентификаторов файлов, которые хотите отправить.
### Важные моменты
- Убедитесь, что вы заменили `'ВАШ_API_TOKEN'` и `ADMIN_ID` на соответствующие значения.
- Этот бот будет отправлять только фотографии. Вы можете добавить дополнительные функции по обработке текстов, видео и других типов контента по аналогии.
Теперь у вас есть базовый шаблон для отправки как одиночных, так и групповых изображений!