BotFather — это официальный бот Telegram, который выступает главным инструментом для создания и настройки любых других ботов в мессенджере. С его помощью разработчики регистрируют новых ботов, получают токены API, меняют имя, описание, аватарку, задают список команд, управляют правами доступа и настраивают инлайн-режим. В этой статье мы разберём все функции BotFather, начиная с базового создания бота и заканчивая продвинутыми опциями, такими как привязка домена и отзыв токенов. Материал построен так, чтобы новичок мог последовательно освоить процесс, а опытный разработчик — найти конкретные команды и граничные условия.

Знакомство с BotFather

BotFather (@BotFather) — это единственный бот, который может создавать других ботов. Он появился одновременно с Bot API в 2015 году и с тех пор не претерпел кардинальных изменений интерфейса, хотя количество доступных команд постепенно росло. Все взаимодействие происходит через обычные текстовые команды (начинающиеся со слеша) или через встроенные кнопки, которые появляются в ответ на /mybots. Отметим, что даже спустя годы командный интерфейс остаётся консервативным — Telegram не спешит добавлять графические мастера, вероятно, чтобы сохранить совместимость и предсказуемость.

Важно понимать: BotFather не хранит логику вашего бота, не предоставляет хостинг и не занимается обработкой сообщений. Его задача — только зарегистрировать бота в системе Telegram и выдать API-токен, а также изменить публичные метаданные (имя, описание, фото, список команд) и параметры конфиденциальности. Всю остальную работу (обработка обновлений, ответы пользователям) вы реализуете сами, запуская код на своём сервере или через сторонние сервисы. Другими словами, BotFather — это «загс» для ботов, а не среда исполнения.

Знакомство с BotFather
Знакомство с BotFather

Быстрый старт: создание первого бота

Чтобы создать нового бота, откройте диалог с @BotFather и отправьте команду /newbot. Бот попросит вас придумать два имени: сначала отображаемое имя (например, «Мой помощник»), а затем username — уникальное имя, заканчивающееся на bot (например, MyHelperBot). Username должен быть свободным и соответствовать правилам Telegram (латиница, цифры, подчёркивание, окончание на bot). Если имя занято, BotFather сообщит об этом и попросит выбрать другое. Обратите внимание: username нельзя изменить впоследствии, поэтому выбирайте его осмысленно и на долгий срок.

После успешного создания вы получите сообщение с токеном доступа — длинной строкой вида 123456:ABCdef123.... Этот токен — ключ к управлению ботом через Bot API. Никогда не передавайте его третьим лицам и не публикуйте в открытом доступе. Если токен скомпрометирован, немедленно отзовите его командой /revoke (см. раздел про токены). Первое, что стоит сделать после получения токена — проверить его работоспособность через простой HTTP-запрос https://api.telegram.org/bot<токен>/getMe.

Пример сценария: Вы создаёте бота для небольшой группы друзей (около 30 человек), который будет присылать напоминания о встречах. После /newbot вы получаете токен, подключаете его к простому скрипту на Python (библиотека python-telegram-bot) и бот готов отвечать на команды. Никаких дополнительных действий в BotFather для базовой работы не требуется. Если же группа разрастётся, можно будет позже настроить команды и приватность.

Управление профилем бота: имя, описание, аватар

После создания бота вы можете изменить его отображаемое имя (/setname), описание, которое видят пользователи в профиле бота (/setdescription), короткое описание для командной строки (/setabout), а также аватарку (/setuserpic). Все эти команды работают одинаково: вы выбираете бота из списка (через /mybots или по ссылке) и вводите новые данные. Удобно, что изменения вступают в силу мгновенно — не нужно перезапускать бота.

Обратите внимание: /setname меняет только отображаемое имя (которое видят пользователи в заголовке чата). Username остаётся неизменным; его нельзя изменить никакой командой BotFather — для этого нужно создать нового бота. Аватарка загружается как любое изображение (до 640×640 пикселей, рекомендовано квадратное). Описание поддерживает до 512 символов, а «О боте» — до 120 символов. Рекомендуем наполнять эти поля осмысленно: описание появляется в результатах поиска и может повлиять на решение пользователя начать диалог.

Платформенные нюансы

Команды выполняются в окне чата с BotFather, поэтому они идентичны на Android, iOS и Desktop-клиентах. Однако на мобильных устройствах может быть неудобно вводить длинные команды вручную — используйте кнопку «Меню» (слева от поля ввода) или вкладку «Команды» в профиле BotFather, чтобы быстро получить список доступных слешей. Кроме того, на планшетах с большим экраном можно одновременно держать открытым BotFather и документацию — это ускоряет настройку.

Настройка команд для пользователей

Команды — это заранее определённые сообщения, начинающиеся со слеша, на которые бот может реагировать. В BotFather вы задаёте полный список команд, которые затем отображаются в интерфейсе пользователя (кнопка «Меню» / список команд). Используйте команду /setcommands, выберите нужного бота и отправьте список в формате:

start - Запустить бота
help - Справка
time - Текущее время

Каждая команда должна быть на отдельной строке, начинаться с латинских символов (без слеша) и отделяться от описания дефисом. Максимум 100 команд. Описание команды должно быть кратким (до 256 символов) и на одном языке, чтобы интерфейс выглядел единообразно. Практический совет: начинайте список с /start, так как Telegram по умолчанию показывает первую команду как самую приоритетную.

Когда не стоит настраивать команды? Если ваш бот работает сугубо через инлайн-режим (см. ниже) или принимает только обработку callback-запросов из клавиатур, то список команд может остаться пустым. Однако для обычного бота наличие хотя бы команды /start обязательно, так как Telegram рекомендует иметь точку входа. Если команды не заданы, пользователь не увидит подсказок и может не понять, как взаимодействовать с ботом.

Конфиденциальность и права доступа

Самый важный раздел настройки — приватность бота. По умолчанию новый бот создаётся в режиме Privacy mode (параметр /setprivacy включён). Это означает, что бот не видит сообщения в группах, если они не начинаются с команды, адресованной боту (например, /command@YourBot). Если вам нужно, чтобы бот читал все сообщения в группе (например, для анализа), отключите privacy mode командой /setprivacy → выберите бота → Disable. Обратите внимание: после отключения бот начнёт получать каждое сообщение группы, что может быть полезно для модерации, но увеличит нагрузку.

Другие важные переключатели: /setjoingroups — может ли кто угодно добавлять бота в группы (по умолчанию включено), и /setinline — включает или отключает инлайн-режим. Если вы не планируете, чтобы бота добавляли в группы, лучше отключить /setjoingroups — это уменьшит риск спама и нежелательных добавлений. Учтите, что даже при отключении вы сами сможете добавить бота, если временно включите опцию.

Граничное условие: Отключение Privacy mode в группах с большим количеством участников (например, 10 000+) может существенно повысить нагрузку на сервер бота, так как ему придётся обрабатывать каждое сообщение. В таких случаях стоит продумать фильтрацию на стороне бота или использовать бота только по командам. Эмпирическое наблюдение: если ваш бот обрабатывает более 1000 сообщений в минуту, возможно, стоит рассмотреть использование отдельного сервера или балансировщика.

Инлайн-режим и его настройка

Инлайн-режим позволяет пользователям вызывать бота прямо из поля ввода сообщения, набрав @username бота. Например, @gif отправляет гифки. Для настройки в BotFather используется команда /setinline — включите её и задайте текст-заполнитель (placeholder), который будет отображаться в поле ввода, пока пользователь не начал печатать. После включения бот начнёт получать инлайн-запросы, на которые он должен отвечать через Bot API (метод answerInlineQuery). Placeholder — это краткая подсказка, например «Введите запрос».

Дополнительные опции: /setinlinegeo (запрашивает геолокацию пользователя перед инлайн-запросом) и /setinlinefeedback (включает уведомления о том, отправили ли пользователи результат инлайн-запроса в чат). Feedback полезен для аналитики: вы можете видеть, какие результаты популярны, и на основе этих данных оптимизировать выдачу. Обратите внимание: для работы инлайн-режима ваш бот должен уметь обрабатывать обновления типа inline_query.

Пример: бот, который по @MyTranslatorBot показывает перевод введённого слова. После включения инлайн-режима и установки placeholder «Введите слово для перевода» бот будет принимать запросы и возвращать переводы в виде инлайн-результатов. Без включения /setinline режим не будет работать, даже если код поддерживает answerInlineQuery. Если вы хотите, чтобы инлайн-режим работал и в группах, убедитесь, что бот имеет соответствующие права (групповой режим не требует дополнительных команд BotFather).

Токены: получение, отзыв, безопасность

Каждый бот имеет уникальный токен — ключ к API. Вы можете в любой момент посмотреть его с помощью команды /token (выбрав бота) или изменить на новый командой /revoke. Рекомендуется отзывать старый токен, если вы подозреваете утечку или если бот меняет владельца. После отзыва старый токен становится недействительным, и все экземпляры бота, использующие его, перестают работать. Однако не стоит менять токен слишком часто — это может вызвать временные простои при обновлении на всех клиентах.

Важно: при отзыве токена новый выдаётся немедленно, но старый может оставаться активным до нескольких минут из-за кэширования на стороне сервера. Поэтому после /revoke сразу используйте новый токен в своём коде. Для дополнительной безопасности храните токен в переменных окружения (environment variables) и никогда не вставляйте его прямо в исходный код. Также регулярно проверяйте логи доступа к API на предмет подозрительной активности.

Удаление и восстановление ботов

Команда /deletebot навсегда удаляет бота. После подтверждения бот перестаёт существовать, а его username освобождается (но не сразу — может пройти несколько дней, пока имя станет доступно другому пользователю). Восстановить удалённого бота невозможно; придётся создавать нового с другим именем. Поэтому перед удалением убедитесь, что вы сохранили все необходимые данные (например, списки подписчиков) из внешней БД. Также рекомендуется сделать резервную копию кода и конфигурации.

Если вы просто хотите временно остановить работу бота, достаточно отключить вебхук на своей стороне или удалить скрипт — самого бота удалять не обязательно. Также можно сменить токен через /revoke, чтобы «выключить» старый экземпляр. При этом бот останется зарегистрированным, и вы сможете в любой момент возобновить работу, запустив новый экземпляр с новым токеном.

Удаление и восстановление ботов
Удаление и восстановление ботов

Продвинутые возможности: привязка домена и другие команды

Среди менее часто используемых, но полезных команд: /setdomain — позволяет привязать к боту домен для ссылок в инлайн-режиме (например, вы можете открывать результаты в вашем веб-приложении). Для этого нужен подтверждённый домен, связанный с аккаунтом разработчика (через @BotSupport или специальную форму). Эта опция актуальна для продвинутых сценариев, когда бот тесно интегрирован с веб-сайтом. Кроме того, привязка домена может повысить доверие пользователей — они увидят знакомый URL.

Другие команды: /setdescription, /setabout — мы уже упомянули; /setname; /cancel — отмена текущего действия. Полный список всегда доступен по команде /help внутри BotFather. Если у вас возникли проблемы с какой-либо командой, не стесняйтесь обратиться к /help — он выводит краткую справку прямо в чат. Также в процессе настройки можно нажать /cancel, чтобы прервать незавершённый диалог.

Справочная таблица команд BotFather

Команда Назначение
/newbotСоздать нового бота
/mybotsСписок ваших ботов с подробностями
/setnameИзменить отображаемое имя
/setdescriptionИзменить описание (до 512 символов)
/setaboutИзменить краткую информацию (до 120 символов)
/setuserpicЗагрузить аватарку
/setcommandsЗадать список команд бота
/setprivacyВключить/выключить режим приватности
/setjoingroupsРазрешить/запретить добавление в группы
/setinlineВключить/выключить инлайн-режим
/setinlinegeoЗапрашивать геолокацию при инлайн-запросе
/setinlinefeedbackВключить уведомления о выборе результатов
/tokenПоказать текущий токен
/revokeОтозвать токен и выдать новый
/deletebotУдалить бота навсегда
/setdomainПривязать домен для инлайн-ссылок

Часто задаваемые вопросы

Как изменить username бота после создания?

Это невозможно через BotFather. Username задаётся один раз при создании. Если нужно другое имя, создайте нового бота с новым username. Старого бота можно удалить командой /deletebot. Запомните, что после удаления имя освобождается не сразу — может пройти несколько дней.

Могу ли я передать бота другому человеку?

Официальной функции передачи бота нет. Фактически бот привязан к аккаунту Telegram, который его создал. Единственный способ — передать токен (но это небезопасно) или создать нового бота и перенести код. При передаче токена вы полностью теряете контроль над ботом, поэтому такой шаг стоит предпринимать только в крайнем случае и с полным доверием к получателю.

Что делать, если я забыл токен бота?

Воспользуйтесь командой /token в BotFather, выберите нужного бота и получите токен повторно. Если вы потеряли доступ к BotFather (например, ваш аккаунт взломан), восстановить бота невозможно. Рекомендуем всегда хранить токен в безопасном менеджере паролей, а не только в BotFather.

Влияет ли отключение приватности на работу бота в личных чатах?

Нет. Privacy mode действует только в группах и супергруппах. В личных чатах бот всегда получает все сообщения независимо от настройки. Поэтому если ваш бот работает только в личных диалогах, можно смело оставлять приватность включённой — это не повлияет на функциональность.

Как добавить бота в группу, если /setjoingroups выключен?

Включите /setjoingroups, добавьте бота, затем при желании снова отключите. Однако после отключения другие пользователи не смогут его добавить. Такой подход удобен, если вы хотите контролировать, в каких группах появляется бот.

Заключение и лучшие практики

BotFather — простой, но мощный интерфейс для управления всеми аспектами регистрации бота. Мы разобрали практически все его команды: от /newbot до /setdomain. Главные выводы, которые стоит вынести из статьи:

  • Всегда храните токен в секрете и используйте /revoke при подозрении на утечку.
  • Для ботов, работающих в группах, тщательно выбирайте режим приватности: отключение увеличивает нагрузку, включение ограничивает функциональность.
  • Настраивайте команды — это улучшает UX и индексацию бота. Минимальный набор: /start, /help.
  • Инлайн-режим включайте только если он действительно нужен, иначе он создаёт лишний трафик.
  • Перед удалением бота убедитесь, что вы не потеряете важные данные. Сделайте резервную копию кода и базы данных.

После того как вы настроили бота через BotFather, следующий шаг — написание кода для обработки обновлений. Не забудьте изучить официальную документацию Bot API (https://core.telegram.org/bots/api). Успешных интеграций!

Будущие тенденции / Ожидания версий: Telegram периодически добавляет новые возможности Bot API (например, реакции, форумные темы, ботов в Stories). Хотя BotFather как инструмент регистрации остаётся стабильным, можно ожидать, что в будущем появятся команды для управления новыми типами контента и правами. Следите за официальным блогом Telegram, чтобы первыми узнавать об изменениях. Пока же BotFather полностью покрывает все базовые потребности разработчика бота.