Введение в онлайн-клавиатуру 0:00 Обсуждение работы с кнопками в Telegram-боте на библиотеке aiogram. Обзор кнопок, которые заменяют клавиатуру и отправляют сообщения. Упоминание дополнительных возможностей: отправка номера телефона или геолокации.
Особенности онлайн-клавиатуры 0:26 Онлайн-клавиатура привязана к сообщению и продолжает отображаться при скроллинге чата. При нажатии на кнопку отправляется запрос, который нужно обработать. Возможность выполнения различных действий по кнопкам.
Документация и код 1:14 Переход по ссылке на документацию Bot API. Объяснение передачи параметров онлайн-клавиатуры: текст, URL, callbackData. Добавление нового действия для отправки сообщения с клавиатурой.
Создание обработчика команды 1:50 Создание обработчика команды в UserCommands или BaseComments. Обработка запроса на сообщение с текстом «инфо». Объявление онлайн-клавиатуры в сообщении.
Разметка онлайн-клавиатуры 3:05 Импорт объектов онлайн-клавиатуры и кнопок из aiogram. Создание разметки онлайн-клавиатуры с помощью онлайн-клавиатуры и строк кнопок.
Создание кнопок со ссылками 4:07 Создание кнопки с текстом «канал» и эмодзи. Указание URL ссылки на канал. Добавление кнопки в строку и список строк.
Тестирование кнопок 5:06 Запуск бота и проверка отображения кнопок. Нажатие на кнопку и переход по ссылке. Возможность указания ссылок на другие ресурсы в Telegram.
Добавление кнопок на внешние ресурсы 8:08 Создание кнопки со ссылкой на GitHub. Подтверждение перехода на внешний ресурс в Telegram. Открытие браузера и просмотр страницы.
Опциональные поля и callbackData 10:02 Объяснение использования callbackData как уникального идентификатора кнопки. Отправка события с callbackData при нажатии на кнопку. Необходимость обратной связи от бота при нажатии на кнопку.
Обработка колбек-запросов 11:15 Колбек-запрос содержит информацию о сообщении, отправителе и данных, вложенных в кнопку. Необходимо ответить на колбек-запрос, используя анс колбек кверри. Важно указать колбек-верри-айди и передать необходимые параметры.
Создание новой кнопки 12:10 Создаём новую кнопку с колбек-дейта вместо URL. Выносим код в отдельный модуль для организации онлайн-клавиатур. Используем киборт билдер для генерации клавиатуры.
Перенос функции 13:02 Переносим функцию билд инфо киборт в отдельный модуль. Рефакторим код для упрощения обработки. Проверяем работу новой функции.
Добавление новой кнопки в клавиатуру 14:34 Создаём переменную для хранения колбек-дата. Добавляем новую кнопку с текстом «рендом сайт» и колбек-дата. Проверяем работу кнопки в Telegram.
Обработка колбек-запроса 15:31 Кнопка ждёт ответа от сервера, показывая анимацию. Тайм-аут ожидания ответа обычно составляет 5 секунд. Изучаем документацию для понимания ограничений колбек-запросов.
Создание роутеров 17:04 Создаём новый пакет колбек-хендлерс для обработки кнопок. Импортируем роутер из aiogram и создаём новый роутер. Подключаем роутер к основному роутеру.
Обработка запроса 20:40 Фильтруем запросы по значению колбек-дата. Отвечаем на колбек-запрос с помощью колбек-верри анс. Передаём случайную ссылку в ответе.
Проверка ответа 22:29 Перезапускаем бота и проверяем реакцию Telegram. Telegram не обрабатывает ответ из-за неправильной ссылки. Возвращаемся к документации для понимания ограничений колбек-запросов.
Использование имени бота 24:02 Создание переменной `bot_name` для хранения имени бота. Получение кэшированной информации о боте через `bot.get_name`. Подстановка имени бота в ответ на запрос.
Обработка запроса 25:32 Ожидание ссылки на старт бота с дополнительным текстом. Вывод текста запроса пользователя через `print`. Демонстрация работы кнопки «старт» с сгенерированным случайным числом.
Генерация случайных чисел 27:12 Добавление кнопки для генерации случайного числа. Настройка иконки и диапазона чисел от 1 до 6. Обработка колбек-запроса для генерации случайного числа.
Кэширование ответов 30:58 Настройка времени кэширования ответов на кнопку. Проверка работы кэширования на стороне клиента Telegram. Пример генерации случайных чисел с кэшированием.
Модальные окна 32:45 Создание кнопки для генерации случайного числа в модальном окне. Обработка колбек-запроса с `show_alert = true`. Демонстрация работы модальных окон с генерацией случайных чисел.
Обновление сообщений 34:45 Настройка времени кэширования для обновления сообщений. Проверка работы кэширования при обновлении сообщений. Упоминание о возможном обновлении сообщения при нажатии на колбек-кнопку.
Переименование переменных и создание новой клавиатуры 35:37 Переименовываем переменную `randomSiteCallbackData` в `randomNumUpdateCallbackData`. Создаём новую онлайн-клавиатуру `actionsKeyboard` путём копирования файла. Удаляем лишнее из исходной клавиатуры.
Импорт и настройка кнопок 36:31 Импортируем переменные из `infoKeyboard` в `actionsKeyboard`. Настраиваем кнопку `randomNumber` на новой клавиатуре. Используем `keyboardBuilder` для создания разметки клавиатуры.
Использование `keyboardBuilder` 37:26 Применяем `keyboardBuilder` для создания кнопки `randomNumber`. Указываем текст кнопки и callback-функцию `randomUpdateCallbackData`.
Настройка роутера и отображение клавиатуры 38:23 Добавляем роутер для обработки команд `actions`. Возвращаем сообщение с клавиатурой при нажатии на кнопку. Перезапускаем бота для отображения новой клавиатуры.
Обработка нажатия на кнопку 40:03 Переносим обработку нажатия на кнопку в новый обработчик `actionsKeyboardCallbackHandlers`. Редактируем сообщение при нажатии на кнопку с помощью `editMessage`. Отвечаем на нажатие кнопки пустым текстом.
Добавление новой кнопки 41:57 Добавляем новую кнопку с текстом `generateRandomNumber` под отредактированное сообщение. Сохраняем изменения и перезапускаем бот.
Регистрация роутера и проверка работы 43:38 Регистрируем роутер для обработки нажатий на кнопку. Проверяем работу кнопки: при нажатии генерируется случайное число и добавляется новая кнопка.
Заключение 45:33 Подводим итоги работы с онлайн-кнопками. Упоминаем о возможности создания отдельного ролика по взаимодействию с кнопками. Благодарим спонсоров и призываем подписываться на соцсети и задавать вопросы в телеграм-чате.