как после '📍Место' получить текст от пользователя и снова появились кнопки

Рейтинг: 0Ответов: 1Опубликовано: 04.02.2023

Подскажите. Мне после нажатия кнопки '📍Место' нужно получить тест от пользователя, после введения должны снова появится кнопки. В финале после нескольких таких кнопок сформировать в одно сообщение и вывести заявку где будет находится введённый тест после кнопок '📍Место','🗓Дата','💵Оплата за час'.

import telebot

from telebot import types

bot = telebot.TeleBot('token')


@bot.message_handler(commands=['start'])
def start(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    item1 = types.KeyboardButton('🙏сделать заказ')
    item2 = types.KeyboardButton('📦я ищу работу')

    markup.add(item1, item2)
    mess = 'Здравствуйте, <b>{0.first_name}!</b>'
    bot.send_message(message.chat.id, mess.format(message.from_user), parse_mode='HTML', reply_markup=markup)


@bot.message_handler(content_types=['text'])
def bot_message(message):
    if message.chat.type == 'private':
        if message.text == '🙏сделать заказ':
            markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
            item1 = types.KeyboardButton('📍Место')
            back = types.KeyboardButton('⬅️Назад')
            markup.add(item1, back)
            mess1 = '<b>Создайте заявку</b>'
            bot.send_message(message.chat.id, mess1.format(message.from_user), parse_mode='HTML', reply_markup=markup)
        elif message.text == '📦я ищу работу':
            mess2 = 'присоединитесь к каналу '
            bot.send_message(message.chat.id, mess2)
        elif message.text == '⬅️Назад':
            markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
            item1 = types.KeyboardButton('🙏сделать заказ')
            item2 = types.KeyboardButton('📦я ищу работу')
            markup.add(item1, item2)
            mess = '<b>⬅️Назад</b>'
            bot.send_message(message.chat.id, mess.format(message.from_user), parse_mode='HTML', reply_markup=markup)
        elif message.text == '📍Место':
            markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
            item1 = types.KeyboardButton('🗓Дата')
            back = types.KeyboardButton('⬅️Назад')
            markup.add(item1, back)
            mess3 = 'Вы выберите место: ' + message.text
            bot.send_message(message.chat.id, mess3)


bot.polling(none_stop=True, interval=0)

Ответы

▲ 0

Я нашел решение нужно использовать FSM состояние. О нем подробнее можно найти в гайдах