Как отправить фотографию вместе с сообщением?

Как настроить бота, чтобы он отправлял фото и текст от пользователей владельцу? Вот пример кода, который пересылает только текстовые сообщения.
  • 3 февраля 2024 г. 13:08
Ответы на вопрос 2
Чтобы ваш бот на Python с использованием библиотеки `python-telegram-bot` мог отправлять фотографию вместе с сообщением, вам нужно использовать метод `send_photo`. Ниже приведен пример, как можно это сделать:

```python
from telegram import Update
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext

def start(update: Update, context: CallbackContext) -> None:
    update.message.reply_text('Привет! Отправьте мне фото.')

def photo(update: Update, context: CallbackContext) -> None:
    user = update.message.from_user
    photo_file = update.message.photo[-1].get_file()
    photo_file.download('user_photo.jpg')
    context.bot.send_message(chat_id=owner_id, text=f"{user.username} отправил фото.")
    context.bot.send_photo(chat_id=owner_id, photo=open('user_photo.jpg', 'rb'))

# Текстовые сообщения будем просто пересылать
def text(update: Update, context: CallbackContext) -> None:
    user = update.message.from_user
    text = update.message.text
    context.bot.send_message(chat_id=owner_id, text=f"{user.username} написал: {text}")

def main():
    """Start the bot."""
    updater = Updater("YOUR_BOT_TOKEN", use_context=True)

    # Получаем диспетчер для регистрации обработчиков
    dp = updater.dispatcher

    # Регистрируем команды и обработчики
    dp.add_handler(CommandHandler("start", start))
    dp.add_handler(MessageHandler(Filters.text, text))
    dp.add_handler(MessageHandler(Filters.photo, photo))

    # Запускаем бота
    updater.start_polling()
    updater.idle()

if __name__ == '__main__':
    owner_id = YOUR_OWNER_CHAT_ID  # Замените YOUR_OWNER_CHAT_ID на id владельца
    main()
```

В данном примере бот отвечает на команду `/start`, пересылает текстовые сообщения функцией `text` и обрабатывает фото функцией `photo`. Полученное фото сохраняется локально и затем отправляется выбранному пользователю (`owner_id`). Бот будет пересылать сообщения, содержащие текст, а также фото в приватный чат с владельцем. Вам нужно заменить `YOUR_BOT_TOKEN` и `YOUR_OWNER_CHAT_ID` на соответствующие токен вашего бота и ID владельца чата.

Если ваш бот должен также пересылать информацию о геопозиции, стикерах, аудиофайлах и т.д., вам нужно будет добавить соответствующие обработчики.

Не забывайте, что при работе с файлами и пользовательскими данными необходимо следить за их безопасным хранением и обработкой согласно законодательству о защите данных.
капец вы долгие уже сам разобрался
Похожие вопросы