Как создать бота в Telegram через @BotFather и подключить mini app

Если вы уже разобрались, что такое mini app в Telegram, следующий шаг — создать самого бота и подключить к нему приложение. Всё это делается через одного системного бота — @BotFather, без панелей управления и лишних регистраций.

Ниже — классический способ, текстовыми командами. Есть и более новый: у BotFather появилось собственное mini app с кнопками и формами вместо переписки — шаг создания бота в нём показан на скриншотах в статье «Создание TG бота через @BotFather».

Что такое BotFather

@BotFather — официальный бот Telegram, через который создаются и настраиваются все остальные боты платформы. Он общается обычными текстовыми командами (начинаются с /) и присылает в ответ токен, настройки и подсказки.

Шаг 1. Создание бота командами

  1. Откройте в Telegram диалог с @BotFather (у официального аккаунта есть галочка подтверждения).
  2. Отправьте команду /newbot.
  3. Придумайте отображаемое имя бота — то, что видят пользователи в чате. Его можно поменять позже.
  4. Придумайте username — уникальный технический адрес бота, обязательно заканчивается на bot (например, my_shop_bot). Сменить его сложнее, чем имя, стоит выбирать сразу осмысленно.
  5. BotFather пришлёт токен вида 123456789:AA... — это ключ доступа к боту.

Токен — это полный доступ к боту. Не публикуйте его в открытом коде, скриншотах и репозиториях. Правильное место для него — переменная окружения (файл .env) с ограниченными правами на чтение, а не константа внутри скрипта. Если токен всё же «утёк» — пересоздайте его командой /token в BotFather, старый сразу перестанет работать.

Базовая настройка через BotFather

После /newbot у бота уже есть токен, но пока нет ни описания, ни аватара, ни команд. Донастраивается всё в том же диалоге:

  • /setdescription — текст, который видят пользователи в пустом чате до первого /start.
  • /setabouttext — короткое описание в профиле бота.
  • /setuserpic — аватар.
  • /setcommands — список слэш-команд с описаниями, который всплывает по нажатию «/» в чате (по одной команде на строку: start - Запустить бота).
  • /setjoingroups — разрешить или запретить добавлять бота в групповые чаты.
  • /setprivacy — в группах: видит бот все сообщения подряд или только команды, адресованные ему.

На этом бот полностью готов технически. Дальше токен подключается к собственному коду (например, на Python через aiogram или python-telegram-bot, на Node.js через Telegraf) через long polling либо через webhook — и бот начинает отвечать на сообщения.

Шаг 2. Подключение mini app к боту

Mini app — это обычная веб-страница (HTML/CSS/JS на HTTPS), которая открывается прямо внутри Telegram. У BotFather есть два способа её подключить.

Вариант А. Кнопка меню (Menu Button)

Самый быстрый способ добавить одно mini app, которое открывается кнопкой слева от поля ввода сообщения:

  1. /mybots в BotFather → выбрать бота.
  2. Bot Settings → Menu Button → Configure menu button.
  3. Указать HTTPS-адрес приложения и текст кнопки (например, «Открыть каталог»).

То же самое можно сделать программно, без диалога с BotFather — методом setChatMenuButton Bot API. Это удобно, если адрес приложения генерируется автоматически или меняется при каждом деплое.

Вариант Б. Полноценное приложение через /newapp

  1. /newapp в BotFather → выбрать бота.
  2. Указать название приложения и короткое описание.
  3. Загрузить обложку (фото или короткий GIF) — без неё BotFather не даст закончить создание.
  4. Указать HTTPS-адрес приложения.

Такое приложение получает собственную ссылку вида t.me/botusername/appname и может открываться не только кнопкой меню, но и из инлайн-режима, групповых чатов и по прямой ссылке — в отличие от Menu Button, который доступен только из личного чата с ботом.

Минимальный код mini app

На самой странице приложения нужно подключить официальный SDK и сообщить Telegram, что приложение готово к показу:

<script src="https://telegram.org/js/telegram-web-app.js"></script>
<script>Telegram.WebApp.ready(); Telegram.WebApp.expand();</script>

ready() убирает системный экран загрузки, expand() разворачивает окно на всю высоту экрана. Данные о пользователе и подпись, которая на сервере подтверждает, что запрос действительно пришёл от Telegram, а не подделан, лежат в Telegram.WebApp.initData — их обязательно нужно проверять на backend, прежде чем доверять содержимому.

Готово: бот создан, настроен и открывает собственное mini app. Дальше остаётся наполнить приложение нужной логикой — это уже задача обычной веб-разработки, без ограничений, специфичных для Telegram.


Сделать заказ

| необходим для связи с вами
В кротчайшие сроки я свяжусь с вами.

Также вы можетете связать со мной:
telegram: @ifwcom