Telegram Bot Inlinekeyboard, на обратном вызове другая встроенная клавиатура - PullRequest
0 голосов
/ 20 декабря 2018

В моем боте на python telegram я могу отобразить первую встроенную клавиатуру, но как я могу отобразить вторую встроенную клавиатуру в боте после нажатия в первом меню встроенной клавиатуры.

def start(bot, update):
    sub = [
            [InlineKeyboardButton("AAA", callback_data='0'),
            InlineKeyboardButton("BBB", callback_data='1')]
        ]

    reply_markup = InlineKeyboardMarkup(sub)
    update.message.reply_text('Select Branch:', reply_markup=reply_markup)


def button(bot, update):

    subK = [
            InlineKeyboardButton("JJJ", callback_data='0'),
            InlineKeyboardButton("HHH", callback_data='1')
        ]

    reply_markup = InlineKeyboardMarkup(subK)

    query = update.callback_query

    bot.edit_message_text(chat_id=query.message.chat_id,
                          message_id=query.message.message_id,
                          reply_markup=ReplyKeyboardRemove())


    bot.edit_message_text(chat_id=query.message.chat_id,
                          message_id=query.message.message_id,
                          reply_markup=reply_markup)

Заранее спасибо.

1 Ответ

0 голосов
/ 20 декабря 2018

Я полагаю, вы добавили функцию button () в CallbackHandler ()?Чем вы можете использовать оператор if для проверки callback_data (если новая клавиатура зависит от нажатой кнопки)

Может быть, в subK отсутствует только вторая пара скобок?

def button(bot, update):

    subK = [[
            InlineKeyboardButton("JJJ", callback_data='0'),
            InlineKeyboardButton("HHH", callback_data='1')
        ]]

ReplyKeyboardRemove, похоже, не нужен в этом фрагменте, но, возможно, он связан с ReplyKeyboards, созданными в другом месте?Но ReplyKeyboard! = InlineKeyboard.

...