Что необходимо изменить в функции, чтобы она работала правильно?

Как создать в телеграм-боте клавиатуру с кнопками "Наши соцсети и сайт", "Получить скидку", "Информация о производстве нашего товара", "Получить тренировки" и настроить обработчик для каждой кнопки?
  • 30 мая 2024 г. 19:41
Ответы на вопрос 1
Для создания клавиатуры с кнопками в телеграм-боте и настройки обработчика для каждой кнопки, необходимо использовать библиотеку python-telegram-bot. 

Пример кода для создания клавиатуры и обработчика кнопок:

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

TOKEN = "YOUR_BOT_TOKEN"
updater = Updater(token=TOKEN, use_context=True)
dispatcher = updater.dispatcher

def start(update: Update, context: CallbackContext) -> None:
    keyboard = [
        ["Наши соцсети и сайт", "Получить скидку"],
        ["Информация о производстве нашего товара", "Получить тренировки"]
    ]
    reply_markup = ReplyKeyboardMarkup(keyboard, one_time_keyboard=True)
    update.message.reply_text("Выберите одну из опций:", reply_markup=reply_markup)

def our_social_media_and_website(update: Update, context: CallbackContext) -> None:
    update.message.reply_text("Наш сайт: example.com\nНаша страница в Instagram: @example\nНаша страница в Facebook: facebook.com/example")

def get_discount(update: Update, context: CallbackContext) -> None:
    update.message.reply_text("Для получения скидки свяжитесь с нами по контактам указанным на сайте.")

def production_information(update: Update, context: CallbackContext) -> None:
    update.message.reply_text("Наш товар производится в собственных цехах с использованием только натуральных материалов.")

def get_trainings(update: Update, context: CallbackContext) -> None:
    update.message.reply_text("Чтобы получить тренировки, пожалуйста, напишите нам на почту [email protected]")

dispatcher.add_handler(CommandHandler("start", start))
dispatcher.add_handler(MessageHandler(Filters.regex("Наши соцсети и сайт"), our_social_media_and_website))
dispatcher.add_handler(MessageHandler(Filters.regex("Получить скидку"), get_discount))
dispatcher.add_handler(MessageHandler(Filters.regex("Информация о производстве нашего товара"), production_information))
dispatcher.add_handler(MessageHandler(Filters.regex("Получить тренировки"), get_trainings))

updater.start_polling()
updater.idle()
```

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