Перейти к содержанию
Innovialabs

Как создать Telegram-бота через BotFather: пошаговая инструкция

Основы3 мин

Коротко

Откройте @BotFather, отправьте /newbot, задайте имя и username с окончанием bot и получите токен; затем настройте описание, аватар, команды и кнопку меню, а токен храните только в переменных окружения сервера.

Коротко: что нужно сделать

  1. Найти в Telegram официальный @BotFather (с синей галочкой) и нажать «Start».
  2. Отправить /newbot, указать имя и username бота.
  3. Получить токен и сразу сохранить его в надёжном месте.
  4. Настроить описание, аватар, команды и кнопку меню.
  5. Подключить токен к коду бота.

Сам бот после создания ничего не умеет: BotFather только регистрирует его. Логику пишет разработчик или настраивает конструктор.

Шаг 1. Имя и username

После /newbot BotFather попросит два значения:

  • Имя (name) — то, что пользователи видят в списке чатов и в профиле. Может быть на любом языке, с пробелами, его легко поменять позже через /setname.
  • Username — адрес бота вида @shop_helper_bot. Требования: латиница, цифры и подчёркивания, длина от 5 до 32 символов, окончание на bot (например, ShopBot или shop_bot). Username должен быть свободен.

Username лучше выбрать сразу окончательно: его используют в ссылках t.me/имя, на визитках и в рекламе.

Шаг 2. Токен

В ответ BotFather пришлёт сообщение с токеном вида 123456789:AAH.... Токен — это полный доступ к боту: кто его знает, тот может отправлять сообщения от имени бота и читать его обновления.

Проверить, что токен рабочий, можно запросом getMe — он вернёт данные вашего бота.

Шаг 3. Описание и аватар

  • /setdescription — текст, который пользователь видит в пустом чате до нажатия «Start». Объясните, что умеет бот и зачем его запускать.
  • /setabouttext — короткий текст в профиле бота, до 120 символов.
  • /setuserpic — аватар. Отправьте квадратное изображение, которое хорошо читается в маленьком круге.

Хорошее описание отвечает на три вопроса: что делает бот, для кого он и что будет после нажатия «Start».

Шаг 4. Команды

/setcommands задаёт список команд, который появляется при вводе / и в кнопке меню. Формат — по одной команде на строку:

start - Начать работу
catalog - Каталог товаров
orders - Мои заказы
help - Помощь и контакты

Правила: имя команды — строчная латиница, цифры и подчёркивания, до 32 символов. Держите список коротким: 3–6 команд читаются лучше, чем двадцать. Команды можно задавать и из кода методом setMyCommands — так удобно делать разные списки для разных языков.

Шаг 5. Кнопка меню

Слева от поля ввода у бота есть кнопка меню. По умолчанию она открывает список команд. В настройках бота в BotFather (/mybots → бот → Bot Settings → Menu Button) её можно превратить в кнопку запуска Mini App — веб-приложения внутри Telegram. Из кода то же самое делает метод setChatMenuButton.

Остальные полезные настройки в /mybots: приватность в группах, разрешение добавлять бота в группы, inline-режим.

Как безопасно хранить токен

  • Храните токен в переменных окружения или менеджере секретов, а не в коде.
  • Добавьте файл .env в .gitignore до первого коммита.
  • Никогда не вставляйте токен в код Mini App или сайта: всё, что попадает в браузер, видно пользователю.
  • Не пересылайте токен в чатах и не показывайте на скриншотах.
  • Заведите отдельных ботов для разработки и продакшна.
  • Если токен утёк, сразу отзовите его: /mybots → бот → API Token → Revoke current token. Старый токен перестанет работать, обновите новый на сервере.
# .env (не коммитить)
BOT_TOKEN=123456789:replace_with_your_token

Частые ошибки

  • Написали в поддельный аккаунт, похожий на BotFather. Официальный — только @BotFather с галочкой.
  • Опубликовали токен в публичном репозитории.
  • Оставили описание пустым — пользователь не понимает, зачем нажимать «Start».
  • Добавили команды в BotFather, но не написали для них обработчики в коде.

Частые вопросы

У BotFather есть ограничение на количество ботов на один аккаунт. Если вы его достигли, BotFather сообщит об этом при попытке создать нового — ненужных ботов можно удалить командой /deletebot.

Поможем с этим

Если хотите не разбираться самим, а получить результат — этим мы занимаемся каждый день.

Обсудить проект

Читайте также

Есть идея или задача? Расскажите нам

Ответим в течение рабочего дня и предложим решение. Консультация бесплатная.