Top.Mail.Ru
Ответы

Как в телеграм бот добавить многоуровневое меню на питоне python-telegram-bot

Я делаю бота на питоне. Так же все взаимодействие с ботом ведется через inline клавиатуру. Как мне сделать так, чтобы каждая из клавиатур открывалась в чате последовательно. То есть после команды старт сразу же выводится первая клавиатура, но вторая выводится только после того, как юзер что то нажмет на первой клаве и так далее. Нужна реализация, как в @BotFather

По дате
По рейтингу
Аватар пользователя
Новичок
123456789101112131415161718192021222324252627282930313233343536373839404142434445
 import telebot 
from telebot import types 
 
bot = telebot.TeleBot("YOU BOT TOKEN") 
 
def inline1(): 
    kbd = types.InlineKeyboardMarkup() 
    i1 = types.InlineKeyboardButton("Первая", callback_data='1') 
    kbd.add(i1) 
    return kbd 
def inline2(): 
    kbd = types.InlineKeyboardMarkup() 
    i2 = types.InlineKeyboardButton("Вторая", callback_data='2') 
    kbd.add(i2) 
    return kbd 
def inline3(): 
    kbd = types.InlineKeyboardMarkup() 
    i1 = types.InlineKeyboardButton("Третья", callback_data='3') 
    i2 = types.InlineKeyboardButton("Четвертая", callback_data='4') 
    kbd.add(i1, i2) 
    return kbd 
 
@bot.message_handler(commands=['start']) 
def start(message): 
    bot.send_message(message.chat.id, "вот первая", reply_markup=inline1()) 
 
@bot.callback_query_handler(func=lambda call: True) 
def call_query(call): 
    if call.message: 
       # message = call.message 
        if call.data == '1': # Телеграм вернул нам, что нажата кнопка 'Первая' 
            bot.send_message(call.message.chat.id, "вот вторая", reply_markup=inline2()) 
        if call.data == '2': 
            bot.send_message(call.message.chat.id, 'Вот третья',reply_markup=inline3()) 
        if call.data == '3': 
            bot.send_message(call.message.chat.id, 'Клавиатуры законичились - приходите завтра') 
 
        # Подтверждаем серверу телеграм, что обработали нажатие  кнопки 
        bot.answer_callback_query(callback_query_id=call.id, show_alert=False) 
       # удаление inline кнопок - раскомментируешь -  кнопки будут удалятся 
       # bot.edit_message_reply_markup(chat_id=call.message.chat.id, message_id=call.message.message_id, reply_markup=None) 
       # Удаление предыдущего сообщения от бота 
       # bot.delete_message(call.message.chat.id, call.message.message_id) 
 
bot.polling(none_stop=True) 
Аватар пользователя
Знаток
9мес

а как в таком меню сделать ввод сообщения?