@xxxfdd

Как сделать чтобы слова вообще игнорировались в боте чисто клава?

Как мне сделать чтобы бот реагировал только на клавиатуру как бы например пользваотеля встречает вот такая клавиатура: Еда, Игрушки , и за едой скрывваються кнопки яблоко и тд но как мне сделать чтобы юзер именно по клаве ходил и не написал просто яблоко и чтобы клава с едой и игрушками просто проскочила

if message.text == 'Посмотреть товары!':
        user_mark_nal = telebot.types.ReplyKeyboardMarkup(True, True)



        user_mark_nal.row('Еда!')
        user_mark_nal.row('Игрушки!')
        user_mark_nal.row('Нашёл баг!')

        bot.send_message(message.from_user.id,
                         'Выберите категорию',
                         reply_markup=user_mark_nal)

    if message.text == 'Еда!':
        user_mark_nal = telebot.types.ReplyKeyboardMarkup(True, True)

        user_mark_nal.row('Яблоко')
        user_mark_nal.row('Апельсин')
        user_mark_nal.row('Банан')

        bot.send_message(message.from_user.id,
                         'Выберите категорию',
                         reply_markup=user_mark_nal)
  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
@STARoD00M
Используй InlineKeyboardMarkup.
На кнопки можно навешивать callback_data, и отлавливать bot.callback_query_handler.
Больше примеров в гугле
Плюс есть такой пример реализации, можно сделать по подобию https://github.com/starod00m/cooking_book
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
SoreMix
@SoreMix Куратор тега Python
yellow
Никак.
ReplyKeyboardMarkup не имеют никаких отличий от текста и являются лишь шорткатами для пользователя, чтобы они не вводили текст руками.
Непонятно как клавиатура может "проскочить", нажатие на кнопку "Яблоко" на 200% идентично отправке "Яблоко" вписанного вручную
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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