Как настроить бота в Telegram так, чтобы при нажатии на кнопку пользователь мог отправить документ?

Как можно отправить файл `raspisanie.jpg`, который уже находится на удаленном сервере с тг-ботом, при нажатии кнопки `button_shift2` в Python с использованием Aiogram библиотеки?
  • 29 апреля 2024 г. 14:50
Ответы на вопрос 1
Для настройки бота в Telegram, чтобы пользователь мог отправить документ при нажатии кнопки, необходимо создать кнопку типа `KeyboardButton` c параметром `request_document=True`. Например:

```
button = KeyboardButton(text="Отправить документ", request_document=True)
```

Затем данную кнопку добавляем на клавиатуру и отправляем пользователю.

Чтобы отправить файл `raspisanie.jpg`, который уже находится на удаленном сервере при нажатии кнопки `button_shift2` в Python с использованием Aiogram библиотеки, можно использовать следующий код:

```
from aiogram import Bot, Dispatcher, types

bot = Bot("YOUR_TOKEN")
dp = Dispatcher(bot)

@dp.message_handler(lambda message: message.text == 'button_shift2')
async def send_file(message: types.Message):
    file_url = 'URL_вашего_файла'
    with open("raspisanie.jpg", "rb") as f:
        await bot.send_document(message.chat.id, f, filename="raspisanie.jpg")

if __name__ == "__main__":
    import asyncio
    loop = asyncio.get_event_loop()
    loop.create_task(dp.start_polling())
    loop.run_forever()
```

В данном коде при нажатии кнопки `button_shift2` будет отправлен документ `raspisanie.jpg` с удаленного сервера по указанному URL.
Похожие вопросы