Привет! Продолжаем разбор темы разработки Telegram ботов с помощью Aiogram 3. В прошлой статье мы рассмотрели:
Магические фильтры (кратко)
Фильтры Command и CommandStart
Роутеры и диспетчер
Создание токена бота через BotFather
Выполнили первый запуск бота
Работали в рамках структуры, разработанной мной
Если вы новичок, предлагаю следовать моей структуре бота, но дальше – на ваше усмотрение.
О чём сегодня пойдёт речь:
Текстовые клавиатуры (markup)
ReplyKeyboardBuilder (генератор текстовых клавиатур)
Командное меню
Магические фильтры (в контексте клавиатур)
Бонус: Command object
Давайте обо всём по порядку.
Текстовая клавиатура
Текстовая клавиатура отображается под полем набора сообщения. Основная её особенность в том, что она не содержит никакой информации, кроме текста на кнопках (исключение – специальные кнопки, такие как геолокация о которых мы поговорим далее).
Другими словами, текст на кнопке отправляется боту, который реагирует на это сообщение, например, через F.text ==.
Начнем с кода. Реализуем его в файле all_kb.py, который находится в пакете keyboards (см. предыдущую статью для деталей).
Создадим простую клавиатуру главного меню. Для разнообразия сделаем так, чтоб у администраторов была дополнительная кнопка "Админ Панель" после выполнения простого фильтра.
Импорты в all_kb.py:
from aiogram.types import KeyboardButton, ReplyKeyboardMarkup
from create_bot import adminsСоздание клавиатуры "Главное меню":
def main_kb(user_telegram_id: int):
kb_list = [
[KeyboardButton(text=" 