Настройка бота через BotFather для mini-app
Создашь бота, привяжешь HTTPS URL Mini App через Menu Button и проверишь запуск из Telegram.
BotFather и точка входа
Mini App открывается по HTTPS URL, который ты регистрируешь у бота. Через @BotFather создаёшь бота, получаешь токен и указываешь, откуда запускать WebApp: Menu Button, кнопка клавиатуры web_app или прямая ссылка t.me/<bot>/<app>.
Без валидного HTTPS URL клиент не откроет приложение.
Создаём бота и Menu Button
В чате с BotFather (пошагово):
Программная установка Menu Button через Bot API (удобно для CI/скриптов):
Клавиатура с web_app (нужна, если используешь sendData):
Как это работает
- Токен бота — секрет для Bot API и для HMAC
initDataна бэкенде. Не коммить в репозиторий. - Menu Button — постоянная кнопка слева от поля ввода в чате с ботом; открывает URL.
/newapp+ short name — deep linkt.me/bot/app, удобно для шаринга.web_appkeyboard — отдельный сценарий; только из него корректно работаетsendData.
Частые ошибки
Указал http:// или localhost без туннеля → Telegram отклонит или не откроет. Нужен публичный HTTPS (см. деплой).
Перепутал Menu Button и Keyboard web_app → sendData из Menu Button / прямой ссылки не доставит данные боту так же, как из keyboard button.
Засветил токен в фронтенде → токен только на сервере. В Mini App его быть не должно.
Что дальше
- Деплой mini-app и HTTPS — куда выложить URL для BotFather
- Telegram WebApp API: инициализация — что делать после открытия URL
- Отправка данных в бот (sendData) — сценарий с keyboard
web_app
Материалы gramdocs.tech носят образовательный характер и не являются финансовой, юридической или инвестиционной рекомендацией. Работа с блокчейном TON и токеном Gram связана с рисками потери средств. Правовая информация