stympel
@stympel
подпивасник

Как пользоваться InlineKeyboard?

Всем привет, столкнулся с проблемкой. Использую библиотеку TELEBOT. Вот так создаю клавиатуру:
def admin_keyboard(message):
    ...
    keyboard = types.InlineKeyboardMarkup()
    keyboard.add(
        types.InlineKeyboardButton(text='Edit message', callback_data='edit_message_callback'),
        types.InlineKeyboardButton(text='Foo', callback_data='foo_callback')
    )
    BOT.send_message(message.chat.id, "First message", reply_markup=keyboard)

@BOT.callback_query_handler(func=lambda call: True)
def callback_data_handler(call):
    ...
    if call.data == 'edit_message_callback':
        for some in some_list:
            keyboard.add(
                types.InlineKeyboardButton(text='Foo foo', callback_data='foo_foo_callback')
            )

Да, писать обработку в функции в callback_data_handler ну такое, это тоже понятно. Вопрос заключается в следующем: как мне по конкретному колбэку изменить сообщение над кнопками и поднять другую клавиатуру?
  • Вопрос задан
  • 985 просмотров
Решения вопроса 1
stympel
@stympel Автор вопроса
подпивасник
Понял, как решить проблему. Пусть есть колбэк, я обрабатываю его какой-либо функцией следующим образом:
  1. Создаю InlineKayboard
  2. Делаю bot.edit_message_text(message_id=call.message.id, chat_id=call.message.chat.id, ...)

Где call - аргумент, приходящий в функцию обработчик.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SevaShpun
@SevaShpun
Developer: Python, PHP, C#, C++, NodeJS
Вот тут думаю найдешь ответ.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы