Что это
Полноценная веб-страница, которая открывается внутри Telegram по кнопке в боте: каталог, кабинет, форма. Пользователь уже авторизован, устанавливать ничего не надо.
Как используем
Делаем кабинеты внутри Telegram: тарифы, роли клиентов, коды приглашения. Пример — веб-сервис с кабинетом в Telegram из кейса UNLOCK.
Где Mini App нужен бизнесу
- Клиенту нужен личный кабинет, но заставлять его регистрироваться и придумывать пароль не хочется.
- Кнопок в чате мало: нужна таблица, график, календарь или форма с живым предпросмотром.
- Новичку нужна пошаговая инструкция прямо в чате с ботом, а не ссылка «куда-то в браузер».
- Владелец сервиса хочет управлять им с телефона, не открывая отдельную админку.
Как мы это используем
- Инструкции. Инструкции по подключению VPN — пять статических страниц, которые открываются из бота на весь экран, берут цвета из темы Telegram и закрываются кнопкой «Готово, закрыть». Сборки и сервера нет, страницы лежат на GitHub Pages.
- Кабинет. В сервисе открыток UNLOCK веб-кабинет с живым предпросмотром открывается внутри Telegram. Пароли не нужны: Telegram передаёт подписанные данные пользователя, и сервис проверяет подпись токеном бота на каждом запросе. Клиент видит только свои открытки.
- Дашборд. В финансовом ассистенте дашборд открывается как Mini App: вкладки «Бизнес», «Покупки» и «Долги», календарь трат, выгрузка в CSV и XLSX. Страница без сборки, на HTML и Chart.js.
- Инструкции из бота продаж. В боте продажи подписок инструкции для iOS, Android, Windows, macOS, Linux, роутеров и Smart TV открываются как WebApp.
Кабинеты внутри Telegram делаем в разделах Сайты и Боты.
Типичные проблемы
- Только HTTPS. Telegram открывает Mini App лишь по адресу с HTTPS, поэтому даже статическим страницам нужен хостинг с сертификатом.
- Вне Telegram половина не работает. Объекта
Telegram.WebApp в обычном браузере нет, кнопка закрытия там не сработает. Для компьютера в UNLOCK кабинет открывается по одноразовой ссылке из бота. - Превью ссылок сжигают одноразовые ссылки. Мессенджер открывает ссылку ради превью. Поэтому в UNLOCK ссылка живёт 10 минут и тратится только нажатием кнопки, а в базе хранятся лишь хэши токенов.
- Подпись нужно проверять на сервере. Данным из браузера верить нельзя: проверяется подпись на каждом запросе, иначе кто угодно выдаст себя за владельца.
- Инструкции устаревают. Шаги привязаны к названиям пунктов меню в чужих приложениях и требуют ручной проверки после их обновлений.
Когда это не нужно
Если сценарий укладывается в несколько кнопок под сообщением, Mini App — лишняя страница, которую нужно поддерживать. И если аудитория приходит не из Telegram, обычный сайт с формой проще.