Как настроить обратную связь через кнопку в телеграм-боте на Python с использованием библиотеки Telebot?

Как создать телеграм-бота на Python с использованием библиотеки Telebot для записи на станцию техобслуживания с помощью InlineKeyboardButton? Как реализовать функционал, который позволяет пользователю выбрать услугу, дату и время для записи, после чего эта информация отправляется администрации для подтверждения, отображая, кто сделал запись, и как администраторы могут подтверждать запись?
  • 2 марта 2024 г. 19:08
Ответы на вопрос 1
Для настройки обратной связи через кнопку в телеграм-боте на Python с использованием библиотеки Telebot, можно использовать метод reply_markup, чтобы добавить кнопку для отправки сообщения. Например:

```python
import telebot
from telebot import types

bot = telebot.TeleBot("YOUR_TELEGRAM_TOKEN")

@bot.message_handler(commands=['start'])
def start_message(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    button = types.KeyboardButton('Написать обратную связь')
    markup.add(button)
    
    bot.send_message(message.chat.id, "Нажми на кнопку, чтобы написать обратную связь", reply_markup=markup)

@bot.message_handler(func=lambda message: True)
def echo_all(message):
    if message.text == 'Написать обратную связь':
        bot.send_message(message.chat.id, "Напишите ваш отзыв:")
        
        # здесь можно добавить функционал для обработки отзыва и отправки его администраторам
        
bot.polling()
```

Чтобы создать телеграм-бота на Python с использованием библиотеки Telebot для записи на станцию техобслуживания с помощью InlineKeyboardButton, можно использовать следующий код:

```python
import telebot
from telebot import types

bot = telebot.TeleBot("YOUR_TELEGRAM_TOKEN")

@bot.message_handler(commands=['start'])
def start_message(message):
    markup = types.InlineKeyboardMarkup(row_width=1)
    service_button = types.InlineKeyboardButton(text='Выбрать услугу', callback_data='service')
    markup.add(service_button)
    
    bot.send_message(message.chat.id, "Выберите услугу для записи:", reply_markup=markup)

@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
    if call.data == 'service':
        markup = types.InlineKeyboardMarkup(row_width=1)
        date_button = types.InlineKeyboardButton(text='Выбрать дату и время', callback_data='date')
        markup.add(date_button)
        
        bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="Выберите дату и время для записи:", reply_markup=markup)

    elif call.data == 'date':
        # здесь можно добавить функционал для выбора даты и времени и отправки информации администрации для подтверждения записи
        
        bot.send_message(call.message.chat.id, "Ваша запись отправлена администрации для подтверждения")

bot.polling()
```

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