Добрый день.
Я хочу вести с клиентом диалог с помощью кнопок, чтобы он всегда выбирал один из предложенных вариантов.
Например, если человек ищет квартиру, для начала он должен выбрать один из городов, затем район в выбранном ранее городе и т.д. Например, если на шаге выбора города человек не выбрал ни один из вариантов, а вписал текст, я бы хотел повторить предыдущее сообщение с кнопками выбора города, поменяв подпись на что-то типа "Выберите один из предложенных вариантов". Не могу понять как это сделать корректно.
import config
import telebot
from telebot import types # кнопки
from string import Template
from datetime import datetime
import time
import pymssql
permissions = config.permissions
bot = telebot.TeleBot(config.API_BOT_TEST_TOKEN, threaded=False)
@bot.message_handler(commands=['start'])
def test_message(message):
chat_id = message.chat.id
markup = telebot.types.InlineKeyboardMarkup()
markup.add(telebot.types.InlineKeyboardButton(text='Алматы', callback_data='city_Алматы'))
markup.add(telebot.types.InlineKeyboardButton(text='Нур-Султан', callback_data='city_Нур-Султан'))
bot.send_message(chat_id, 'Choose your city', reply_markup=markup)
@bot.callback_query_handler(func=lambda call: 'city' in call.data)
def query(call):
bot.send_message(call.from_user.id, 'Хорошо, город сохранен')
bot.edit_message_reply_markup(call.from_user.id, message_id=call.message.message_id)
##### Какой обработчик тут должен быть и что он должен содержать, чтобы объяснить пользователю, что он должен выбрать один из предложенных вариантов, в случае, если он ввел текст вместо того, чтобы сделать выбор?
bot.polling()