@helldess

Как сделать так, чтобы бот отвечал на определенную команду в определенном меню?

Сейчас я пишу телеграм бота и мне нужно сделать так, чтобы человек к примеру написал какую-то команду и бот ему отправлял сообщение: "Неправильная команда.", а переходя по какой-либо кнопке уже откликался на эту команду.
С помощью чего можно это сделать?(опишите пожалуйста подробнее с каким-либо простиньким кодом для примера)
  • Вопрос задан
  • 609 просмотров
Пригласить эксперта
Ответы на вопрос 1
@o5a
Например учитывать только callback, а не прямой текст:
import telebot
from telebot import types

bot = telebot.TeleBot(TOKEN)

@bot.message_handler(commands=['start'])
def start(message):
    keyboard = types.InlineKeyboardMarkup()
    key_buy = types.InlineKeyboardButton(text='Покупка', callback_data='/buy')
    key_info = types.InlineKeyboardButton(text='Инфо', callback_data='/info')
    keyboard.add(key_buy, key_info)
    bot.send_message(message.chat.id, 'Команды:', reply_markup=keyboard)

@bot.message_handler(content_types=["text"])
def handle_text(message):
    if message.text.startswith('/'):
        bot.send_message(message.chat.id, 'Неправильная команда')

@bot.callback_query_handler(func = lambda call: True)
def calls(call):
    if call.data == '/buy':
        bot.send_message(call.message.chat.id, 'Обрабатываем покупку')
    elif call.data == '/info':
        bot.send_message(call.message.chat.id, 'Вот инфо')

bot.polling(none_stop=True)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы