Личный кабинет в Telegram-боте: Mini Apps
Что такое Telegram Mini App, когда он действительно нужен, а когда хватит кнопок, как устроена авторизация пользователя и что учесть перед разработкой.
Все статьи гида Telegram-боты · 13
Mini App - это ответ на ситуацию, когда кнопок стало мало. Полезно понимать заранее: это не расширение бота, а отдельное веб-приложение, и объём работ соответствующий.
Что это такое
Веб-страница, которая открывается внутри мессенджера поверх чата. Обычный фронтенд со своим хостингом, с одним важным дополнением: платформа передаёт ему данные о пользователе, который его открыл.
Отсюда главный практический вывод: разработка Mini App - это фронтенд-разработка. Верстка, состояние, запросы к вашему бэкенду, тестирование на разных устройствах. Бот при этом остаётся: он даёт кнопку для открытия и продолжает отвечать за уведомления.
Когда нужен, а когда нет
Хватит кнопок:
- Линейный сценарий: несколько вопросов и результат.
- Короткое меню на два-три уровня.
- Уведомления с действием да/нет.
- Каталог из десятка позиций.
Нужен Mini App:
- Таблицы и списки с фильтрами и сортировкой.
- Формы с большим числом полей, где заполнение по одному вопросу утомляет.
- Каталог с большим числом позиций и поиском.
- Графики и отчёты.
- Всё, где пользователь должен видеть много данных одновременно.
Практический признак: меню разрослось до четвёртого уровня вложенности. Значит, интерфейс перерос кнопки - см. кнопки.
Обратный признак: Mini App ради одной формы из трёх полей - лишняя работа. Три вопроса в диалоге пользователь заполнит быстрее, чем дождётся загрузки страницы.
Авторизация
Здесь ошибаются чаще всего, и ошибка серьёзная.
Платформа передаёт приложению данные о пользователе вместе с подписью. Проверять подпись обязательно, и обязательно на сервере.
Что происходит без проверки: данные приходят от клиента, а значит их можно подделать. Приложение, доверяющее им на слово, позволяет любому назваться любым пользователем и увидеть чужие данные.
Правильная схема:
- Приложение открывается и получает данные от платформы.
- Отправляет их на ваш сервер.
- Сервер проверяет подпись ключом, производным от токена бота.
- Только после этого сервер выдаёт сессию и данные.
Токен бота при этом остаётся на сервере и в приложение не попадает - см. токен.
Что учесть
- Хостинг и HTTPS. Нужен настоящий домен с сертификатом, локальный адрес не подойдёт.
- Мобильный экран в первую очередь. Большинство пользователей откроет приложение с телефона, и места мало.
- Тёмная и светлая темы. Приложение открывается внутри мессенджера, и интерфейс, игнорирующий тему пользователя, выглядит чужеродным.
- Скорость загрузки. Пользователь ждёт реакции как от чата, а не как от сайта. Тяжёлая страница здесь неуместна.
- Работа без приложения. Часть сценариев должна оставаться доступной через бота: не все откроют Mini App.
- Данные - на сервере. Приложение показывает, решения принимает бэкенд.
Объём работ по такому проекту - это бот плюс фронтенд плюс бэкенд, и оценивать его надо соответственно: разработка ботов.
Как разворачивать и эксплуатировать всё это - деплой. Обзор - гид по Telegram-ботам.
Вопросы и ответы
Что такое Telegram Mini App?
Веб-страница, открывающаяся внутри мессенджера поверх чата. По сути это обычный сайт с доступом к данным пользователя от платформы, поэтому разработка Mini App - это полноценная фронтенд-разработка, а не настройка бота.
Когда нужен Mini App, а когда хватит кнопок?
Кнопки закрывают линейные сценарии и короткие меню. Mini App нужен там, где есть таблицы, фильтры, формы с несколькими полями, графики или каталог с большим числом позиций. Признак: меню разрослось до четвёртого уровня вложенности и пользователь теряется.
Как понять, кто открыл Mini App?
Платформа передаёт данные пользователя вместе с подписью, и эту подпись обязательно проверять на сервере. Данным, пришедшим от клиента без проверки подписи, доверять нельзя: их можно подделать, и вместе с ними подделать личность пользователя.
Ещё по теме
- Telegram-боты на Python: полный практический гидГид
- Кнопки в Telegram-боте: обычные и инлайнЧем обычная клавиатура отличается от инлайн-кнопок, когда какая нужна, как обрабатывать нажатия и почему обязательно подтверждать callback.
- Конструкторы Telegram-ботов против кода: что выбратьКакие задачи закрывают конструкторы ботов, где они упираются в потолок, из чего складывается стоимость владения и как выбрать между конструктором и кодом.
- Оплата в Telegram-боте: приём платежей по шагамКакие есть способы принимать оплату в боте, чем они отличаются, как обрабатывать подтверждение платежа и почему идемпотентность здесь обязательна.
Сделаю под ключ
Сделаю Telegram-бота под ваш процесс
Заявки, оплата, выдача доступа, рассылки и воронка в одном боте, с админкой для вас.
от 300 $ · 3-7 дней
«Действительно гуру своего дела. Узнал массу новой и полезной информации по телеграм рассылкам. До этого сжег очень много денег на оплате услуг посредников, но после общения с исполнителем буду делать все сам)»