Telegram Mini App — Пошаговое руководство
Что это?#
Telegram Mini App позволяет вашим клиентам открывать цифровое меню ресторана прямо внутри Telegram — без установки приложений и без перехода в браузер. Меню выглядит как нативная часть Telegram: подстраивается под тему пользователя, поддерживает кнопку «Назад» и жесты.
Преимущества#
- 📱 Внутри Telegram — клиенту не нужно переключаться на браузер
- 🎨 Нативный вид — цвета, шрифты и тема подстраиваются под Telegram
- 🔗 Deep Links — прямая ссылка на меню конкретного ресторана
- 🌍 Автоязык — язык берётся из настроек Telegram пользователя
- 🍪 Без cookies — баннер cookie не показывается внутри Telegram
Самый быстрый путь — мастер в панели#
В админ-панели: Магазин приложений → карточка «Магазин в Telegram» → «Настроить» (окно открывается прямо на витрине, уходить никуда не нужно). Мастер проведёт вас за четыре шага и большую часть работы сделает сам:
- Название магазина.
- Создание бота в @BotFather и проверка токена — токен вы просто вставляете в мастер.
- Автоматическая настройка бота: имя, короткое описание, кнопка «Меню» с ссылкой на ваше меню, вебхук и команды — Meni выставляет всё через Telegram Bot API, вручную нажимать ничего не нужно.
- Создание Mini App (
/newappв BotFather) и ссылка вашего магазина.
Прогресс сохраняется: мастер можно закрыть и продолжить позже.
Ниже — ручной путь: то же самое целиком через BotFather. Он пригодится, если бот уже настроен по-своему или вы хотите понимать, что именно происходит.
Быстрый старт (вручную)#
Шаг 1 — Создайте бота#
Откройте @BotFather в Telegram и отправьте:
/newbot
- Введите имя бота (например,
Meni Menu Bot) - Введите username (например,
MeniMenuBot) — должен заканчиваться наBot - Сохраните полученный Bot Token (формат:
123456789:ABCdefGHI...)
💡 Если бот уже создан, переходите к Шагу 2.
Зачем нужен Bot Token?#
Bot Token — это секретный ключ для программного управления ботом через Telegram Bot API. Если вы делаете всё вручную через BotFather (шаги 2–4), он не требуется.
Токен нужен, чтобы отдать бота Meni — тогда панель настраивает его сама и бот начинает работать на вас:
- Приветствие и кнопка «Меню» — бот здоровается на языке гостя, с учётом вертикали (ресторан, салон, отель, магазин), и открывает витрину как Mini App
- Напоминания о записи — гость подписывается на напоминание о визите и подтверждает или отменяет его кнопкой «✅ Приду» / «❌ Отменить» прямо в чате
- Уведомления владельцу — новые записи и отмены приходят в ваш личный чат с ботом. Подписка включается приватной ссылкой вида
t.me/{бот}?start=admin_…: она показывается в мастере на шаге «Готово» и в карточке интеграции. Ссылку не публикуйте — уведомления начнёт получать любой, кто её откроет. (Гость, в свою очередь, может посмотреть свои предстоящие записи командой/bookingsв чате с ботом.) - Переписка с гостями — отдельным каналом в разделе «Рабочий чат» → секция «Гости»: сообщения из Telegram падают в общий инбокс вместе с чатом сайта, WhatsApp, Instagram и почтой (для этого нужен свой бот — у одного бота может быть только один вебхук)
А ещё токен пригодится, если вы захотите автоматизировать что-то своё: отправлять сообщения клиентам, добавлять inline-кнопки в сообщения бота (см. раздел ниже) или подключить его к своей системе.
🔒 Не публикуйте Bot Token — любой, у кого есть токен, может управлять вашим ботом. Если токен скомпрометирован, отзовите его командой
/revokeв BotFather.
Шаг 2 — Создайте Mini App#
Отправьте BotFather команду:
/newapp
- Выберите бота из списка
- Title — название приложения (например,
Meni) - Description — описание (например,
Digital restaurant menu) - Photo — загрузите изображение 640×640 px (иконка приложения)
- GIF — анимация (необязательно). Чтобы пропустить, отправьте
/empty - Web App URL — укажите адрес вашего клиентского приложения:
https://cenaly.ru
- Short Name — короткое имя для ссылки (например,
menu)
После этого у вас появится рабочая ссылка вида:
https://t.me/YourBot/menu
Шаг 3 — Добавьте кнопку «Меню» в чат бота#
Отправьте BotFather:
/setmenubutton
- Выберите бота
- Отправьте URL:
https://cenaly.ru
- Введите текст кнопки (например,
Open Menuили📋 Меню)
Теперь при открытии чата с ботом внизу экрана появится кнопка, которая открывает ваше приложение.
Шаг 4 — Разрешите домен#
Отправьте BotFather:
/setdomain
Выберите бота и укажите домен:
cenaly.ru
Это разрешит Telegram Web App работать на вашем домене и всех его поддоменах (например, locationid.cenaly.ru).
Deep Links — ссылки на конкретный ресторан#
Telegram поддерживает параметр startapp, который передаётся в приложение при открытии. Используйте его для ссылок на конкретный ресторан:
| Ссылка | Что откроется |
|---|---|
t.me/YourBot/menu |
Главная страница |
t.me/YourBot/menu?startapp=LOCATION_ID |
Меню конкретного ресторана |
t.me/YourBot/menu?startapp=LOCATION_ID__ru |
Меню на русском языке |
t.me/YourBot/menu?startapp=LOCATION_ID__en |
Меню на английском языке |
Примеры#
Если LOCATION_ID вашего ресторана — lnc2w74z:
https://t.me/YourBot/menu?startapp=lnc2w74z
https://t.me/YourBot/menu?startapp=lnc2w74z__ru
https://t.me/YourBot/menu?startapp=lnc2w74z__en
📌
LOCATION_ID— это идентификатор вашей локации в cenaly.ru. Вы можете найти его в админ-панели или в URL видаhttps://LOCATION_ID.cenaly.ru.
Inline-кнопки из бота#
Если ваш бот отправляет сообщения клиентам, вы можете добавить inline-кнопку, которая откроет меню:
Вариант 1 — Web App кнопка (открывается сразу)#
{
"inline_keyboard": [[{
"text": "📋 Открыть меню",
"web_app": {
"url": "https://LOCATION_ID.cenaly.ru/ru"
}
}]]
}
Вариант 2 — Deep Link кнопка#
{
"inline_keyboard": [[{
"text": "📋 Открыть меню",
"url": "https://t.me/YourBot/menu?startapp=LOCATION_ID__ru"
}]]
}
Что работает автоматически#
После подключения внутри Telegram автоматически включаются:
| Функция | Описание |
|---|---|
| 🎨 Тема | Цвета приложения подстраиваются под тему Telegram (светлая/тёмная) |
| ◀️ Кнопка «Назад» | Нативная кнопка Telegram появляется при открытии карточки товара |
| 📏 Viewport | Приложение растягивается на весь экран |
| 🔒 Защита от закрытия | Вертикальный свайп не закроет приложение случайно |
| 🌍 Автоязык | Язык определяется из профиля Telegram, если не задан явно |
| 🍪 Cookies | Баннер cookie не отображается внутри Telegram |
QR-коды для ресторанов#
Уже существующие QR-коды с URL вида https://lnc2w74z.cenaly.ru продолжат работать как обычно — через браузер.
Для дополнительной интеграции с Telegram можно разместить на столах второй QR-код со ссылкой на бота:
https://t.me/YourBot/menu?startapp=lnc2w74z
Проверка работоспособности#
- Откройте ссылку
https://t.me/YourBot/menuна телефоне - Нажмите Start (если открываете бота впервые)
- Нажмите кнопку 📋 Меню в нижней панели чата
- Убедитесь, что приложение открылось и загрузило меню
- Попробуйте открыть deep link:
https://t.me/YourBot/menu?startapp=LOCATION_ID
Частые проблемы#
| Проблема | Решение |
|---|---|
| Приложение не открывается | Проверьте, что домен cenaly.ru разрешён через /setdomain |
| Белый экран | Убедитесь, что Web App URL указан как https://cenaly.ru (HTTPS обязательно) |
startapp не работает |
Проверьте формат: LOCATION_ID (без пробелов, спецсимволов). Разделитель для языка — двойное подчёркивание __ |
| Тема не применяется | Telegram Mini App SDK должен быть подключён (обновите клиентское приложение) |