ilya_krasin
@ilya_krasin
Начинающий программист

Как отслеживать текст пользователя после нажатия кнопки в TelegramBotAPI?

Мне нужно чтобы при нажатии на InlineKeyboardButton бот отправлял сообщения в духе "Введите свой текс для поиска"
После чего пользователь отправляет какой либо текст и если он совпадает с тем что прописан в коде, то бод отправляет какую либо картинку с текстом (не важно, главное чтобы он отправлял нужное мне сообщение), а в случаи если текст не совпадает, то бот отправляет сообщение в духе "Я тебя не понимаю" . Я пробовал сделать это так, но у меня ничего не работает:

#кнопка у меня настроена и выводит нужное мне сообщение, но не работает поиск
@bot.callback_query_handler(func=lambda call:True)
def search(call):
     
     MenuText = 'Для возврата в меню используйте /start'
     if call.data == 'search': # search - это callback_data нужной кнопки 
        if call.message.text == "Текст который должен ввести пользователь":
             Text = 'Текст  ответного сообщения'
             Photo = 'file_id'
             bot.send_photo(call.message.chat.id, Photo, Text)
             bot.send_message(call.message.chat.id, MenuText)
     else:
          bot.send_message(call.message.chat.id, "Я тебя не понимаю")
                       
bot.polling(none_stop=True)


Также мне нужно чтобы после ввода команды start или menu этот код переставал работать до тех пор пока пользователь опять не нажмёт нужную кнопку.
P.s: Если вы знаете как это сделать прошу помогите мне, я только учусь делать ботов в Telegram (и программировать), занимаюсь этим меньше недели поэтому многого не понимаю.
  • Вопрос задан
  • 257 просмотров
Решения вопроса 1
nki
@nki
bezkart.ru готовая система лояльности
у bot есть метод register_next_step_handler_by_chat_id и register_next_step_handler, который позволяет указать функцию обрабатывающую следующий ввод после команды.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы