Telebot python ввод в вводе
Подскажите пожалуйста как с библиотекой telebot в python сделать "ввод в вводе". После ввода данных мне нужно чтобы бот запрашивал имя. Сейчас бот запрашивает данные и сразу записывает эти данные в имя хотя это разное.
def func(message):
global con
if con == 1:
num = int(data[0]["nom"])
for i in range(1, num):
print(data[i]["номер"])
if str(data[i]["номер"]) == message.text:
bot.send_message(message.chat.id, text="Присоеденился")
con = 0
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn1 = types.KeyboardButton("Вернуться")
markup.add(btn1)
# Тут нужно запросить имя
Пробовали создать цикличность функции, но не вышло.
Ответы (1 шт):
Автор решения: Medvedev
→ Ссылка
Используйте bot.register_next_step_handler
Создайте отдельную функцию например reg_user и в ней пропишите данные, которые нужно запрашивать у пользователя
Например:
def reg_user(message):
msg = bot.send_message(message.chat.id, "Введите ваше имя") # сообщение которое отправится пользователю
# обработчик ждет ответ от пользователя и запускает следующую функцию
bot.register_next_step_handler(msg, reg_user_two)
def reg_user_two(message):
user_feedback = message.text # сохраняем ответ в переменную
msg = bot.send_message(message.chat.id, "Введите вашу фамилию")
# передаем ответ в следующую функцию
bot.register_next_step_handler(msg, reg_user_two, user_feedback)
# далее по аналогии сколько угодно раз
В конце просто выведите результаты ваших переменных в чат или сохраните в БД, как угодно
И не забывайте юзать документацию