Использование клавиатуры

Встроенная кнопка

def message_with_inline_keyboard_example(bot, message):
    keyboard = keyboards.inline.Keyboard(
        buttons=[
            keyboards.inline.Button('Нажми меня', 'put_on_me'),
        ]
    )
    message_with_text = messages.create_message('Пример сообщения с кнопкой', sender=bot)
    message_with_keyboard = messages.add_keyboard(message_with_text, keyboard)
    return actions.send_message(message.chat, message_with_keyboard)


def put_button_handler(bot, message):
    reply_message = messages.create_message(
        text='Вы нажали кнопку, а я обработал нажатие',
        sender=bot,
    )
    return actions.send_message(message.chat, reply_message)

Пример теста

    def test_message_with_inline_keyboard_example(self):
        """
        Test /message_with_inline_keyboard: success
        """
        chat = self.assertCommandWasHandled('/message_with_inline_keyboard', self.chat)
        self.assertChatLastMessageTextEqual(
            chat,
            'Пример сообщения с кнопкой',
        )
        keyboard = self.assertChatLastMessageKeyboardLen(chat, 1)
        self.assertEqual('Нажми меня', keyboard.buttons[0].text)

    def test_put_button_handler(self):
        """
        Test button "put_on_me": success
        """
        chat = self.assertCallWasHandled('put_on_me', self.chat)
        self.assertChatLastMessageTextEqual(chat, 'Вы нажали кнопку, а я обработал нажатие')

Клавиатура (Внизу чата)

def message_with_reply_keyboard_example(bot, message):
    keyboard = keyboards.reply.Keyboard(
        name = 'Пример клавиатуры',
        buttons=[
            keyboards.reply.Button('Нажми меня 🔍'),
        ]
    )
    message_with_text = messages.create_message('Пример сообщения с клавиатурой', sender=bot)
    message_with_keyboard = messages.add_keyboard(message_with_text, keyboard)
    return actions.send_message(message.chat, message_with_keyboard)


def put_keyboard_handler(bot, message):
    reply_message = messages.create_message(
        text='Вы нажали на клавиатуру, а я обработал нажатие и убрал клавиатуру',
        sender=bot,
    )
    reply_message = messages.add_keyboard(reply_message, keyboards.reply.EmptyKeyboard())
    return actions.send_message(message.chat, reply_message)

Пример теста

    def test_message_with_reply_keyboard_example(self):
        """
        Test /message_with_reply_keyboard: success
        """
        chat = self.assertCommandWasHandled('/message_with_reply_keyboard', self.chat)
        self.assertChatLastMessageTextEqual(
            chat,
            'Пример сообщения с клавиатурой',
        )
        self.assertChatKeyboardLen(chat, 1)
        keyboard = self.assertChatKeyboardName(chat, 'Пример клавиатуры')
        self.assertEqual('Нажми меня 🔍', keyboard.buttons[0].text)

    def test_put_keyboard_handler(self):
        """
        Test text "Нажми меня 🔍": success
        """
        chat = self.assertTextMessageWasHandled('Нажми меня 🔍', self.chat)
        self.assertChatLastMessageTextEqual(
            chat,
            'Вы нажали на клавиатуру, а я обработал нажатие и убрал клавиатуру'
        )
        self.assertKeyboardNotInChat(chat)