Telegram Mini App — Покрокова інструкція
Що це?#
Telegram Mini App дозволяє вашим клієнтам відкривати цифрове меню ресторану прямо всередині Telegram — без встановлення додатків і без переходу в браузер. Меню виглядає як нативна частина Telegram: підлаштовується під тему користувача, підтримує кнопку «Назад» і жести.
Переваги#
- 📱 Всередині Telegram — клієнту не потрібно переключатися на браузер
- 🎨 Нативний вигляд — кольори, шрифти і тема підлаштовуються під Telegram
- 🔗 Deep Links — пряма посилання на меню конкретного ресторану
- 🌍 Автомова — мова береться з налаштувань Telegram користувача
- 🍪 Без cookies — банер cookie не показується всередині Telegram
Швидкий старт#
Крок 1 — Створіть бота#
Відкрийте @BotFather в Telegram і відправте:
/newbot
- Введіть ім'я бота (наприклад,
Cenaly Menu Bot) - Введіть username (наприклад,
MeniMenuBot) — має закінчуватися наBot - Збережіть отриманий Bot Token (формат:
123456789:ABCdefGHI...)
Навіщо потрібен Bot Token?#
Bot Token — це секретний ключ для програмного управління ботом через Telegram Bot API. Для базового налаштування Mini App (кроки 2–4) він не потрібен — все робиться через BotFather. Але він знадобиться, якщо ви захочете:
- Відправляти повідомлення клієнтам — сповіщення про статус замовлення, акції, вітальні повідомлення
- Додавати inline-кнопки в повідомлення бота (наприклад, кнопку «📋 Відкрити меню» — див. розділ нижче)
- Створити Telegram-бота для прийому замовлень — бот може отримувати і обробляти замовлення
- Налаштувати Webhook — отримувати події від Telegram (натискання кнопок, команди користувачів)
- Інтегрувати з CRM або POS-системою — автоматична обробка замовлень через бота
Крок 2 — Створіть Mini App#
Відправте BotFather команду:
/newapp
- Виберіть бота зі списку
- Title — назва додатку (наприклад,
Cenaly) - Description — опис (наприклад,
Digital restaurant menu) - Photo — завантажте зображення 640×640 px (іконка додатку)
- GIF — анімація (необов'язково). Щоб пропустити, відправте
/empty - Web App URL — вкажіть адресу вашого клієнтського додатку:
https://cenaly.com
- Short Name — коротке ім'я для посилання (наприклад,
menu)
Після цього у вас з'явиться робоче посилання виду:
https://t.me/YourBot/menu
Крок 3 — Додайте кнопку «Меню» в чат бота#
Відправте BotFather:
/setmenubutton
- Виберіть бота
- Відправте URL:
https://cenaly.com
- Введіть текст кнопки (наприклад,
Open Menuабо📋 Меню)
Тепер при відкритті чату з ботом внизу екрану з'явиться кнопка, яка відкриває ваш додаток.
Крок 4 — Дозвольте домен#
Відправте BotFather:
/setdomain
Виберіть бота і вкажіть домен:
cenaly.com
Це дозволить Telegram Web App працювати на вашому домені і всіх його піддоменах (наприклад, locationid.cenaly.com).
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
Inline-кнопки з бота#
Якщо ваш бот відправляє повідомлення клієнтам, ви можете додати inline-кнопку, яка відкриє меню:
Варіант 1 — Web App кнопка (відкривається одразу)#
{
"inline_keyboard": [[{
"text": "📋 Відкрити меню",
"web_app": {
"url": "https://LOCATION_ID.cenaly.com/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.com продовжать працювати як зазвичай — через браузер.
Для додаткової інтеграції з 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.com дозволений через /setdomain |
| Білий екран | Переконайтеся, що Web App URL вказано як https://cenaly.com (HTTPS обов'язково) |
startapp не працює |
Перевірте формат: LOCATION_ID (без пробілів, спецсимволів). Роздільник для мови — подвійне підкреслення __ |
| Тема не застосовується | Telegram Mini App SDK має бути підключено (оновіть клієнтський додаток) |