Боты и Telegram

Что такое Telegram Mini App

Что это

Полноценная веб-страница, которая открывается внутри 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, обычный сайт с формой проще.

← Все термины

Нужен сайт, бот или автоматизация?

Термины объяснили — теперь давайте к делу: расскажите о задаче, а мы переведём её на понятный план работ.