Телеграм-бот или мини-приложение: чем отличаются и что заказывать
Перед заказом этот вопрос задают почти всегда, и ответ на него проще, чем кажется: он зависит не от моды и не от бюджета, а от того, что человек делает внутри — отвечает на вопросы или смотрит, выбирает и сравнивает. Разбираю разницу, признаки и две ошибки, которые я сам допустил в раннем мини-приложении.
Бот — это переписка. Он присылает сообщения и кнопки под ними, человек отвечает текстом или нажатием. Всё происходит в ленте чата, одно за другим.
Мини-приложение — это веб-страница, которая открывается внутри телеграма поверх чата: кнопкой в сообщении, из меню бота или по ссылке. Внутри может быть что угодно, что умеет сайт, — каталог с фильтрами, календарь, корзина, таблица, карта. Телеграм при этом сообщает странице, кто её открыл, так что регистрация не нужна.
Разница не в технологии, а в форме взаимодействия: разговор или экран.
Когда хватает бота
Бот хорош там, где действие линейное: вопрос — ответ — следующий вопрос.
- Приём заявки. Что нужно, для какого бизнеса, в какой срок, какой бюджет. Бот-квалификатор задаёт эти вопросы по очереди и присылает владельцу готовую карточку, а нецелевое отсеивает до менеджера. Экран здесь ничего не добавил бы — подробно о таком боте.
- Уведомления. Статус заказа, напоминание о записи, новая заявка. Сообщение в чате — ровно та форма, которая нужна.
- Ответы на типовые вопросы и выдача материалов: прайс, инструкция, файл.
- Простая оплата одной суммы прямо в переписке.
Признак простой: если весь сценарий можно описать как разговор с вежливым администратором, нужен бот.
Когда без экрана не обойтись
Экран нужен, когда человеку надо видеть много сразу и выбирать.
- Каталог. Двадцать позиций кнопками под сообщением — это неудобно, двести — невозможно. Фильтры, поиск, карточки товаров — задача экрана.
- Выбор даты и времени. Бот, который перебирает свободные слоты кнопками, раздражает уже на третьем шаге. Календарь, где занятое сразу видно, решает это одним взглядом — в мини-приложении он работает так же, как на сайте.
- Кабинет с данными. Статистика, история, статусы, таблицы. В партнёрской платформе Recca повседневные действия перенесены в телеграм, и разделение там естественное: уведомления о событиях приходят сообщениями, а смотреть цифры и статусы удобнее на экране.
- Корзина из нескольких позиций с изменением количества.
Признак: если в разговоре с администратором вы попросили бы «покажите, что у вас есть», нужен экран.
Мини-приложение почти всегда идёт вместе с ботом
Это часто упускают при заказе. Мини-приложение не существует само по себе: открывается оно через бота, и написать человеку первым оно не может — сообщения в чат отправляет бот. Напоминание о записи, подтверждение оплаты, ответ менеджера придут от бота.
Поэтому вопрос «бот или мини-приложение» на практике чаще звучит как «хватит ли одного бота или к нему нужен экран». И это же объясняет разницу в цене: мини-приложение — это бот плюс сайт плюс сервер, который связывает одно с другим. Из чего складывается цена бота — там мини-приложения стоят в самой дорогой категории, и это не наценка за модное слово.
Как мини-приложение устроено изнутри
Три части, и каждую надо сделать отдельно:
Страница. Обычный сайт, который должен открываться по защищённому адресу. Статической страницы достаточно: в моём демо мини-приложения «визитка разработчика» она собрана тем же движком, что и этот сайт, и лежит на бесплатном хостинге.
Сервер. Нужен для всего, что нельзя доверить браузеру: проверить, кто открыл приложение, записать в базу, отправить сообщение через бота. В том же демо это одна облачная функция с двумя адресами — проверка входа и приём заявки — и небольшая база; заявка приходит владельцу сообщением от бота, а один человек не может отправить больше одной заявки за пять минут. Как бесплатно держать такую функцию, посчитано отдельно.
Бот. Точка входа и канал уведомлений.
Две ошибки, которые я допустил сам
В раннем мини-приложении обе проблемы были моими, и обе типичны.
Подпись проверялась, а возраст — нет. Телеграм передаёт странице строку с данными пользователя и подписью, и сервер обязан её проверить: иначе любой может прислать «я пользователь такой-то» и получить чужой кабинет. Проверку подписи я сделал, но не смотрел на время, когда эта строка была выдана. Подпись от этого не перестаёт быть верной, так что однажды перехваченную строку можно было использовать сколько угодно долго. В следующем проекте строка старше часа отклоняется, а подписи сравниваются способом, который не выдаёт по времени ответа, насколько близко угадано.
Тема определялась по цвету фона, и один раз. Телеграм сообщает странице цвета текущей темы, и приложение должно в них выглядеть родным. Я угадывал тёмную тему по чисто чёрному фону — и в этом случае ставил странице белый, то есть ровно наоборот. А фон страницы задавался один раз при открытии: переключил человек тему, пока приложение открыто, — кнопки и текст перекрашивались, а фон оставался старым. Правильно брать готовый признак светлой или тёмной схемы, который телеграм передаёт отдельно, подставлять цвета из его же набора и слушать событие смены темы для всей страницы, а не для части компонентов.
Обе ошибки не видны на собственном телефоне разработчика, и обе видны пользователю или злоумышленнику. Это хороший вопрос к любому исполнителю: как проверяются данные входа и сколько они живут.
Про оплату
Бот и мини-приложение принимают деньги похоже, но с одной оговоркой: за цифровые товары и услуги внутри телеграма его правила требуют оплату во внутренней валюте — звёздах, а сторонние платёжные провайдеры остаются для физических товаров и услуг в реальном мире. Решать, что именно вы продаёте, надо до выбора способа оплаты. Механика подключения провайдера и то, что в ней ломается, разобраны в статье про оплату в боте.
Как решить за пять минут
| Что делает человек | Что нужно |
|---|---|
| Отвечает на вопросы, оставляет заявку | Бот |
| Получает уведомления и напоминания | Бот |
| Выбирает из каталога, фильтрует, сравнивает | Бот и мини-приложение |
| Выбирает дату и время из свободных | Бот и мини-приложение |
| Смотрит статистику, историю, статусы | Бот и мини-приложение |
Если сомневаетесь — начните с бота. Экран к нему добавляется потом, не переделывая то, что уже работает, а бот останется точкой входа и каналом уведомлений в любом случае. Обратный путь — сначала экран, потом выяснить, что людям хватало трёх вопросов, — обходится дороже.
Понять, что нужно вашей задаче
Напишите в Telegram пару предложений о задаче: что за бизнес, что должно получиться и что уже пробовали. В ответ — понятный план и цена. Без брифов на десять страниц.