Полный гид по BotFather
BotFather - официальный бот Telegram, который создаёт и управляет всеми остальными ботами Telegram. Этот гид охватывает каждую команду, которая вам действительно понадобится, точные шаги от /newbot до рабочего токена, и что делать, если этот токен утечёт.
Краткий ответ
BotFather - это собственный бот Telegram для регистрации и настройки ботов, и он бесплатен, без платы за сообщение. Чтобы создать бота, откройте Telegram, найдите "@BotFather", отправьте /newbot, задайте отображаемое имя и username, оканчивающийся на "bot", и он ответит API-токеном вида 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw. На этом BotFather останавливается: он регистрирует бота, но не даёт ему никакого поведения, поэтому вы вставляете этот токен в собственный размещённый код или в no-code конструктор вроде TeleMinute (3,99 $ в неделю, 9,99 $ в месяц или 49,99 $ единоразово за пожизненный доступ) и проектируете ответы там.
Что такое BotFather в Telegram?
BotFather - официальный бот, управляемый Telegram, с username @BotFather, и это единственный способ зарегистрировать нового бота. Вы общаетесь с ним как в любом другом чате: отправляете команды, он задаёт вопросы, вы отвечаете, и он сохраняет результат.
BotFather бесплатен. Создание ботов ничего не стоит, нет ежемесячной платы от Telegram, и нет платы за отправленное сообщение, что является главным отличием по стоимости от WhatsApp Business API. Вы можете зарегистрировать несколько ботов с одного аккаунта Telegram.
Перед тем как нажать Start, проверьте, что открытый вами аккаунт имеет синюю галочку верификации и точный username @BotFather. Существуют поддельные аккаунты с похожими username, единственная цель которых - собирать токены, которые люди туда вставляют.
Как создать бота с помощью BotFather?
Вы отправляете /newbot, отвечаете на два вопроса и копируете токен. Весь процесс занимает около двух минут и выглядит так:
- Откройте @BotFather. Найдите "BotFather" в Telegram, откройте верифицированный аккаунт и нажмите Start.
- Отправьте
/newbot. BotFather ответит, попросив имя вашего нового бота. - Отправьте отображаемое имя. Например "Sunrise Cafe". Это то, что пользователи видят вверху чата. Пробелы, заглавные буквы и эмодзи разрешены, и вы можете изменить его позже командой
/setname. - Отправьте username. Он должен быть от 5 до 32 символов, использовать только латинские буквы, цифры и знаки подчёркивания, и должен оканчиваться словом "bot": SunriseCafeBot и sunrise_cafe_bot оба допустимы, SunriseCafe нет. Username уникальны во всём Telegram, поэтому если ваш занят, BotFather просто попросит другой.
- Скопируйте токен. BotFather поздравит вас и выведет API-токен вроде 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw. Скопируйте его в безопасное место и относитесь к нему как к паролю.
- Откройте своего бота и нажмите Start. Нажмите на ссылку t.me в ответе BotFather. Бот существует, но пока ни на что не будет отвечать. Это ожидаемо.
- Вставьте токен туда, что будет запускать бота. Ваш собственный код сервера, или no-code конструктор, где вы определяете команды и ответы. Бот выходит в эфир в момент, когда что-то начинает получать обновления для этого токена.
Выбирайте username внимательно. У BotFather есть команды для изменения имени, картинки и описания бота, но нет команды для изменения его username, поэтому переименование на практике означает создание нового бота и перенаправление на него ваших ссылок.
Если вам нужен полный путь для новичков со скриншотами того, что происходит после токена, смотрите как создать бота Telegram без программирования.
Какие есть команды у BotFather?
Вот команды, которые важны для создания и работы бота. Отправка /help BotFather выводит текущий список в любой момент, а /mybots показывает почти все из них в виде кнопок.
| Команда | Что она делает | Когда нужна |
|---|---|---|
/newbot | Регистрирует нового бота: спрашивает отображаемое имя, затем username, оканчивающийся на "bot", затем возвращает API-токен. | Один раз на бота, в самом начале. |
/mybots | Открывает меню всех ваших ботов с кнопками API Token, Edit Bot, Bot Settings и Delete Bot. | Самый быстрый путь ко всему нижеперечисленному без запоминания команд. |
/token | Показывает текущий API-токен выбранного бота. Не меняет токен. | Вы потеряли токен, но нет оснований думать, что он утёк. |
/revoke | Немедленно аннулирует текущий токен и выдаёт новый вместо него. | Токен утёк, попал в репозиторий, или ушёл подрядчик. |
/setname | Меняет отображаемое имя вверху чата. Username не затрагивается. | Ребрендинг, сезонные названия, исправление опечатки. |
/setdescription | Задаёт текст, показываемый на пустом экране чата под "Что умеет этот бот?", до 512 символов. | Рассказать людям, что делает бот, прежде чем они нажмут Start. |
/setabouttext | Задаёт короткую биографию в профиле бота и в превью ссылок, до 120 символов. | Однострочный питч, показываемый при обмене ссылкой на бота. |
/setuserpic | Загружает фото профиля бота. Отправьте квадратное изображение для чистой обрезки. | Любой бот, которого пользователи увидят в списке чатов. |
/setcommands | Задаёт список команд, которые пользователи видят в меню "/". Вы отправляете по одной строке на команду в формате команда - описание. | После того как вы решили, на какие команды отвечает бот. |
/setjoingroups | Включает или выключает возможность добавлять бота в группы. | Выключите для строго индивидуального бота поддержки. |
/setprivacy | Режим конфиденциальности в группах. Включён (по умолчанию) означает, что бот получает только команды, отвечает на свои сообщения, сообщения с упоминанием его username и служебные сообщения. Выключен означает, что он получает каждое сообщение в группе. | Групповые боты, которым нужно реагировать на обычные ключевые слова. Добавьте бота в существующие группы заново, чтобы изменение вступило в силу. |
/setinline | Включает инлайн-режим, чтобы пользователи могли ввести @вашбот, а затем запрос в любом чате. | Боты в стиле поиска. Оставьте выключенным, если не поддерживаете инлайн-запросы. |
/deletebot | Окончательно удаляет бота после подтверждения точной фразой, которую попросит BotFather. | Списание бота навсегда. Отменить нельзя. |
У BotFather есть ещё несколько команд, которые можно смело игнорировать в начале, включая игровые команды (/newgame, /mygames, /listgames, /editgame, /deletegame), команды тонкой настройки инлайна (/setinlinegeo, /setinlinefeedback) и /setdomain, которая связывает домен сайта с виджетом Telegram Login.
Что такое токен бота Telegram и как получить его снова?
Токен бота - это единственный ключ доступа, позволяющий программе действовать как ваш бот, и вы можете снова увидеть его в любой момент командой /token или через /mybots, затем API Token. Выглядит он так:
110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw
Цифры до двоеточия - это публичный числовой ID пользователя бота. Строка после двоеточия - секрет. Каждый вызов Bot API Telegram - это просто запрос к https://api.telegram.org/bot<token>/methodName, так что владелец полной строки может вызвать любой метод от имени вашего бота.
Один токен может использоваться только одной работающей системой одновременно. Telegram допускает только один webhook URL на бота, и опрос обновлений при установленном webhook возвращает ошибку 409 Conflict. Если вы переносите бота с одной платформы на другую, отключите старую вместо того, чтобы запускать обе.
Что происходит при утечке токена бота и как его отозвать?
Относитесь к токену как к паролю: тот, у кого он есть, полностью контролирует бота, и решение - /revoke. Частичного доступа и режима только для чтения не существует.
С украденным токеном злоумышленник может:
- Читать каждое сообщение, которое пользователи отправляют вашему боту с этого момента, включая всё введённое в ваши формы
- Отправлять, редактировать и удалять сообщения от имени бота всем, кто его уже запустил
- Перенаправить webhook на собственный сервер, чтобы ваш трафик незаметно шёл к нему вместо вас
- Менять меню команд, описание и инлайн-поведение через Bot API
Что он не может сделать, тоже стоит знать. Токен не даёт доступа к вашему личному аккаунту Telegram, он не может удалить бота (для этого нужен ваш аккаунт внутри BotFather), он не может отправлять сообщения людям, которые никогда не запускали вашего бота, а у Bot API нет метода для скачивания списка ваших пользователей, поэтому список подписчиков нельзя просто экспортировать.
Чтобы сменить токен:
- Отправьте
/revokeBotFather - Выберите нужного бота на показанной клавиатуре
- BotFather мгновенно аннулирует старый токен и отвечает новым
- Вставьте новый токен везде, где хранился старый, поскольку бот остаётся офлайн, пока вы этого не сделаете
Профилактика - это в основном одна привычка: никогда не размещайте токен в публичном месте. Не коммитьте его в GitHub, не вставляйте в групповой чат или тикет поддержки, и обрезайте его на скриншотах. Публичные репозитории постоянно сканируются на предмет паттерна из цифр, двоеточия и букв, и утёкшие токены часто используются злоумышленниками в течение нескольких минут. Больше подобных правил гигиены собрано в нашей статье лучшие практики для ботов Telegram.
Как изменить имя, описание, текст о боте или картинку?
Используйте /setname, /setdescription, /setabouttext и /setuserpic, или откройте /mybots, выберите бота и выберите Edit Bot, чтобы сделать все четыре вещи из меню. Каждая команда сначала спрашивает, какого бота редактировать, затем просит новое значение.
Эти два текстовых поля легко перепутать. Описание занимает до 512 символов и появляется на пустом экране чата над кнопкой Start, поэтому это последнее, что пользователь читает перед тем, как решить использовать вашего бота. Текст о боте занимает до 120 символов и появляется на странице профиля бота и в превью ссылок, когда кто-то ею делится.
Изменения вступают в силу немедленно, и ни одно из них не затрагивает токен или username. Если у вас уже есть подключённые пользователи, переименование безопасно: их чат продолжит работать.
Как задать меню команд, которое видят пользователи?
Отправьте /setcommands, выберите своего бота, затем отправьте весь список одним сообщением, по одной команде на строку в формате команда - описание, без ведущего слэша. Например:
start - Запустить бота и открыть главное меню
menu - Посмотреть текущее меню и цены
book - Забронировать столик
hours - Часы работы и адрес
help - Как пользоваться этим ботомПравила Telegram для этого списка: имена команд используют латинские строчные буквы, цифры и знаки подчёркивания, длиной от 1 до 32 символов, а каждое описание - от 1 до 256 символов. Бот может иметь до 100 команд в меню. После сохранения список появляется, когда пользователь набирает "/", и за кнопкой меню рядом с полем сообщения.
Одна вещь ловит почти всех: регистрация команды в BotFather делает её только видимой. Это не заставляет её работать. Если вы добавите /hours в меню, но ничего на принимающей стороне не обрабатывает /hours, пользователи нажимают на неё и получают тишину, что выглядит хуже, чем не указывать её вовсе.
Чего не делает BotFather?
BotFather регистрирует бота, задаёт его профиль и выдаёт вам токен, и это вся его работа. Он даёт вашему боту нулевое поведение, поэтому совершенно новый бот никогда ни на что не отвечает, сколько бы вы ни ждали.
Каждое сообщение, которое пользователь отправляет вашему боту, становится обновлением на стороне Telegram. Что-то должно получать эти обновления, либо через webhook, либо через polling, решать, каким должен быть ответ, и вызывать Bot API, чтобы отправить его. У вас есть два реалистичных варианта для этого чего-то:
- Написать и разместить самостоятельно. Скрипт на Python или Node, сервер или serverless-функция для его запуска, HTTPS-эндпоинт для webhook, плюс мониторинг и переразвёртывания навсегда после этого.
- Использовать no-code конструктор. Вы вставляете токен в платформу, строите команды и ответы в визуальном редакторе, и она сама занимается получением обновлений и отправкой ответов.
TeleMinute - второй тип. Вы вставляете токен BotFather в app.teleminute.com и получаете неограниченное число ботов Telegram, неограниченные команды и ответы по ключевым словам, инлайн-кнопки и меню, лид-формы с отслеживанием ответов внутри приложения, push-уведомления о новом ответе на форму, рассылки всем пользователям вашего бота с планированием и сегментацией, подробную статистику и отчёты о доставке, и до 4 изображений на команду. Боты работают на webhook Telegram, поэтому они онлайн круглосуточно без сервера, который нужно арендовать или держать активным. Есть бесплатный 15-минутный тестовый бот без карты, и если вы хотите сначала сравнить рынок, посмотрите наш обзор лучших конструкторов ботов Telegram.
| Что стоит | Цена | Что включено |
|---|---|---|
| BotFather и Telegram Bot API | Бесплатно | Регистрация бота, токен, настройки профиля. Без платы за сообщение. |
| Тестовый бот TeleMinute | Бесплатно, без карты | 15-минутный тестовый бот, чтобы протестировать конструктор целиком. |
| TeleMinute Premium, понедельно | 3,99 $ в неделю | Все функции. Тарифных уровней нет. |
| TeleMinute Premium, помесячно | 9,99 $ в месяц | Все функции. Самый популярный вариант. |
| TeleMinute Premium, пожизненно | 49,99 $ единоразово | Все функции, оплата один раз, пожизненный доступ. |
Какой бы путь вы ни выбрали, два правила Telegram применяются к каждому боту, и ни одна платформа не может их отменить. Бот может писать только тем, кто запустил его первым, поэтому холодных рассылок не бывает, а массовая отправка ограничена примерно 30 сообщениями в секунду, поэтому рассылка на большую аудиторию встаёт в очередь и требует времени на завершение.
Как удалить бота Telegram?
Отправьте /deletebot BotFather, выберите бота и подтвердите, отправив в ответ точную фразу, которую покажет BotFather (сейчас это "Yes, I am totally sure."). То же самое можно сделать через /mybots, затем Delete Bot.
Удаление необратимо. Токен перестаёт работать, бот исчезает из вашего аккаунта, и BotFather предупреждает, что это нельзя отменить. Не относитесь к этому как к кнопке паузы.
Если вы просто хотите, чтобы бот на время перестал отвечать, отзовите токен командой /revoke или отключите его на платформе, которая его запускает. Оба действия занимают секунды и обратимы.
У вас есть токен. Теперь дайте боту что сказать.
Вставьте токен BotFather в TeleMinute и визуально постройте команды, ответы по ключевым словам, инлайн-меню и лид-формы. Начните с бесплатного 15-минутного тестового бота, карта не нужна.
Подключить токен ботаГлавные выводы
- BotFather - официальный бот Telegram для создания ботов, у @BotFather, и он бесплатен, без платы за сообщение.
- Создайте бота командой
/newbot: отображаемое имя, затем username от 5 до 32 символов, который должен оканчиваться на "bot", затем токен. - Токен - это пароль.
/tokenпоказывает его снова,/revokeмгновенно заменяет его при утечке. - BotFather может менять имя, описание, текст о боте, картинку, меню команд и настройки группы бота, но не его username.
- BotFather никогда не заставляет бота отвечать. Ваш собственный размещённый код или конструктор вроде TeleMinute (3,99 $ в неделю, 9,99 $ в месяц или 49,99 $ единоразово) делает эту часть.
Заключение
BotFather намеренно прост. Это стойка регистрации: он выдаёт личность и токен, даёт вам отполировать профиль, и не мешается. Выучите десяток команд выше, и вам больше никогда не понадобится их искать.
Интересная работа начинается после токена. Решите, на что должен отвечать ваш бот, подключите токен к тому, что сможет отвечать, и протестируйте первые пять вопросов, которые зададут ваши реальные пользователи. Это и есть разница между зарегистрированным ботом и полезным.