Как стать автором
Обновить

Комментарии 7

Можно объединить сразу много клавиатур — главное, чтобы общее количество кнопок было не больше ста. Это ограничение Telegram.
Не могу что-то представить себе кейс, при котором кому-то нужно 20 кнопок, 50. Куда так много?
Навскидку, это может быть оглавление книги или список аудиозаписей, статей.
Даже выбрать день месяца — уже 30 кнопок.

Релейный блок, например.

Это очень… Инновационно и достойно Хабра… я полагаю?
Я не особо понимаю в чём достоинство, как говорится, тема женской груди не раскрыта

Почему то выдает ошибку:

from keyboa import keyboa_maker
ImportError: cannot import name 'keyboa_maker' from 'keyboa'

Возможно надо так:
from keyboa import Keyboa

Статья была написана для версии 2.*, а в версии 3 - немного по-другому. Общий принцип остался прежним, так что данная статья на 90% актуальна.

Можно либо задать версию keyboa == 2.2.8 и делать, как описано статье, либо установить последнюю версию (3.*) и руководствоваться инструкцией с Github.
Рекомендую последний вариант, так как в новой версии создавать клавиатуры еще проще. Вместо функции keyboa_maker - объект класса Keyboa. При отправке боту его нужно просто вызвать, например:

menu = ["spam", "eggs", "ham"]
keyboard = Keyboa(items=menu)
bot.send_message(chat_id=chat_id, text=text, reply_markup=keyboard())

Спасибо за подсказку, но теперь call.data не работает:

received_callback = call.data  # "&city=London$"
NameError: name 'call' is not defined

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории