
Когда достаточно бота
Бот удобен для уведомлений, простых вопросов и последовательного сбора небольшого объёма данных. Пользователь остаётся в переписке и может быстро продолжить действие. Если каждый шаг понятен без большой таблицы или визуального выбора, бот часто закрывает задачу.
Когда нужен Mini App
Каталог с фильтрами, личный кабинет, форма с несколькими зависимыми полями и просмотр истории удобнее в веб-интерфейсе. Mini App открывается внутри Telegram, но позволяет проектировать экран вокруг задачи, а не вокруг цепочки сообщений.
Почему они работают вместе
Бот может прислать напоминание и открыть нужный раздел Mini App. Интерфейс показывает данные, а сообщения возвращают пользователя в процесс. Для такой связки нужно согласовать идентификацию, права доступа и состояния операций.
Что выяснить перед разработкой
Опишите путь одного пользователя от первого сообщения до результата. Укажите, что происходит при повторном нажатии, потере соединения и отсутствии доступа. Затем решите, какие действия требуют экрана, а какие достаточно выполнить сообщением.
Учебный пример: запись на консультацию
Пользователь выбирает тему, время и оставляет комментарий. Если доступно три фиксированных времени, бот может показать кнопки и подтвердить выбор сообщением. Если расписание меняется, нужно сравнить специалистов и перенести встречу, отдельный интерфейс позволит показать больше контекста.
| Действие | Бот | Mini App |
|---|---|---|
| Напомнить о встрече | Сообщение с понятным действием | Экран не нужен |
| Выбрать слот из расписания | Подходит для небольшого выбора | Календарь и фильтры |
| Посмотреть историю встреч | Короткий список | Кабинет с деталями и статусами |
При подтверждении сервер должен ещё раз проверить, свободен ли слот. Нельзя считать место занятым только потому, что кнопка исчезла на экране: два человека могут открыть одно расписание одновременно. Для пользователя важен понятный ответ о результате бронирования и возможность выбрать другое время.
Сценарий ошибок тоже часть интерфейса
Запишите поведение при закрытии окна до подтверждения, повторном нажатии и потере сети. Сохранённая запись должна появиться в кабинете, даже если сообщение о результате не дошло. Уведомление и интерфейс используют одно состояние операции, чтобы не противоречить друг другу.
Вопросы получения данных пользователя и проверки initData рассмотрены в официальной документации Telegram Mini Apps. Проверка выполняется на стороне сервера, а не на основании доверия к значениям в браузере.
Другие сценарии приведены в разделе Telegram-ботов и Mini Apps.