Создаём бота через BotFather
За пять минут в самом Telegram ты создашь собственного бота и получишь от него секретный ключ — токен, с которым в следующих уроках оживёт наш «Цыплёнок-помощник».
BotFather — это официальный бот Telegram, через которого создают новых ботов и получают для них токен. Можно сказать, что это «бот, который рождает других ботов».
Зачем нам вообще BotFather
Представь, что ты хочешь завести в школе новый кружок. Просто так повесить объявление недостаточно: сначала надо прийти к завучу, записать название кружка, получить номер кабинета и ключ от него. Без этого ключа ты даже дверь не откроешь.
В мире Telegram таким завучем и работает BotFather. Ты приходишь к нему, говоришь «хочу нового бота», придумываешь имя — и он выдаёт тебе ключ. Этот ключ называется токен, и именно он позволит твоей программе на Python управлять ботом.
Может возникнуть вопрос: а почему нельзя просто написать программу и сразу запустить её, как мы запускали обычные скрипты на Python? Потому что бот живёт не у тебя на компьютере, а внутри Telegram, на серверах в каком-то дата-центре. Чтобы эти серверы согласились слушать именно твою программу и пускать её к конкретному боту, им нужно доказательство, что ты — хозяин этого бота. Таким доказательством и служит токен. Без него Telegram просто ответит твоему коду «я тебя не знаю» — и ничего не произойдёт. Поэтому самый первый шаг в жизни любого бота — это не строчка кода, а короткий разговор с BotFather.
В прошлом уроке мы разобрались, что бот — это специальный аккаунт в Telegram, которым управляет программа, а не человек. Но пока этого аккаунта у нас ещё нет. Сегодня мы его заведём. Забегая вперёд: к концу курса этот самый бот превратится в «Цыплёнка-помощника», который умеет показывать кнопки, вести диалог, запоминать тебя в базе и ходить за погодой. А начинается всё с одного разговора с BotFather.
Вот к чему мы придём прямо в этом уроке — ты увидишь в чате примерно такое сообщение:
Done! Congratulations on your new bot. You will find it at t.me/ChickHelperBot.
Use this token to access the HTTP API:
7654321098:AAH-ExampleTokenThatYouMustKeepSecret_xxxx
Keep your token secure and store it safely, it can be used by anyone to control your bot.Результат: в чате BotFather поздравит тебя с новым ботом, даст ссылку на него вида t.me/ChickHelperBot и пришлёт длинную строку — это и есть токен. Никакого кода писать пока не надо: всё происходит внутри Telegram.
Что такое токен и почему это пароль
Давай сразу разберёмся с главным словом урока.
Токен — это секретный ключ вида 123456:ABC..., который Telegram выдаёт боту и по которому отличает его от других; его нельзя публиковать.Самая точная аналогия — пароль от аккаунта. Когда ты вводишь логин и пароль в любимой игре, сервер по ним понимает: «ага, это точно ты, пускаю». Токен работает так же, только вместо тебя в Telegram «логинится» твоя программа. Она показывает токен — и серверы Telegram понимают: «это команды от хозяина бота ChickHelperBot, выполняю».
Отсюда железное правило: токен — это пароль, и показывать его нельзя никому. Если кто-то узнает твой токен, он сможет от имени твоего бота рассылать спам, удалять сообщения, обманывать твоих друзей — и со стороны это будет выглядеть так, будто это делаешь ты. Представь, что ты выложил скриншот с токеном в чат игрового клана «просто похвастаться». Уже через минуту кто-нибудь скопирует ключ и угонит бота. Поэтому токен мы будем прятать так же бережно, как пароль от почты.
Заметь важную деталь: терять токен не страшно так же сильно, как, например, забыть пароль от старого аккаунта в игре. Если ты случайно удалил заметку с токеном, бот не пропадёт — ты в любой момент попросишь у BotFather показать ключ заново или выпустить новый. А вот если токен увидел кто-то чужой — это уже проблема, и решается она тоже через BotFather (мы скоро дойдём до волшебной команды /revoke). Запомни разницу: «потерял» — поправимо за минуту, «показал чужому» — надо срочно менять ключ.
Чуть позже, в уроках про код, мы вообще не будем писать токен прямо в программе. Мы спрячем его в переменные окружения — это настройки и секреты, которые хранят вне кода и подставляют при запуске программы. Но об этом позже; сейчас просто запомни: токен получаем, бережём, никому не показываем.
Шаг за шагом: создаём бота
Открой Telegram (подойдёт и телефон, и компьютер) и поехали. Я буду писать, что вводишь ты, и что отвечает BotFather.
Шаг 1. Найди настоящего BotFather
В строке поиска Telegram набери BotFather. В выдаче появится несколько похожих названий — и вот тут важно не ошибиться. Настоящий BotFather один, и у него есть синяя галочка (значок верифицированного аккаунта) и юзернейм ровно @BotFather. Все остальные «BotFather2», «Official BotFather» и прочие — это подделки, которые хотят выманить твой будущий токен.
Нашёл правильного — открывай чат и жми кнопку Start (или отправь команду /start). В ответ он пришлёт список того, что умеет.
/start
I can help you create and manage Telegram bots. If you're new to the Bot API, please see the manual.
You can control me by sending these commands:
/newbot - create a new bot
/mybots - edit your bots
/setname - change a bot's name
/token - generate authorization token
...Результат: BotFather поздоровается и покажет меню своих команд. Нам из него сейчас нужна одна — /newbot.
Шаг 2. Скажи «хочу нового бота»
Отправь команду /newbot. Слово команда мы уже знаем из глоссария: это сообщение, начинающееся с /, на которое бот реагирует особым образом. В ответ BotFather спросит, как будет называться твой бот.
/newbot
Alright, a new bot. How are we going to call it? Please choose a name for your bot.Результат: BotFather просит придумать имя бота — то, что люди увидят сверху в чате.
Шаг 3. Придумай имя
Имя — это «вывеска» бота, она видна в шапке чата и в списке контактов. Здесь полная свобода: можно с пробелами, эмодзи и на русском. Для нашего проекта введём:
Цыплёнок-помощник 🐤Результат: BotFather запомнит имя и сразу попросит следующее — юзернейм.
Шаг 4. Придумай юзернейм
А вот юзернейм — это уже строгая штука. Это адрес бота, по которому его находят: t.me/что_то_тут. У юзернейма три правила:
- он должен быть уникальным на весь Telegram — если занят, придётся придумать другой;
- может состоять только из латинских букв, цифр и знака подчёркивания;
- обязан заканчиваться на
bot(напримерChickHelperBotилиchick_helper_bot).
Если первый вариант занят (а короткие имена почти всегда заняты), просто добавь цифры или своё имя: ChickHelperBot2026, ChickHelper_byMax_bot. Это совершенно нормально — у тебя десятки тысяч ботов-«соседей», и красивые короткие адреса разобрали ещё годы назад. На работу бота юзернейм никак не влияет: хоть ChickHelperBot, хоть chick_helper_2026_bot — отвечать он будет одинаково. Просто выбери такой адрес, который ты сам не забудешь и сможешь продиктовать другу. Введём, например:
ChickHelperBotРезультат: если юзернейм свободен, BotFather поздравит тебя и выдаст токен — то самое сообщение «Done! Congratulations…», которое мы видели в начале урока. Если занят — честно скажет «Sorry, this username is already taken» и попросит другой.
Шаг 5. Забери токен
В сообщении-поздравлении найди длинную строку из цифр, двоеточия и букв — это твой токен. Аккуратно скопируй его целиком (на телефоне можно нажать прямо на строку — BotFather специально делает её копируемой).
Положи токен в надёжное место: заметку с паролями, файл, который не выкладываешь в интернет, или менеджер паролей. В следующих уроках, когда будем писать код, мы достанем его именно отсюда. И помни главное правило: в чат, на скриншот, в гитхаб — никогда.
А что потом? Полезные команды BotFather
Бот создан, но BotFather умеет ещё много мелочей, которые делают бота приятнее. Их не обязательно настраивать прямо сейчас, но знать полезно. Вот самые частые команды:
| Команда | Что делает |
/mybots | Список твоих ботов — отсюда удобно управлять каждым |
/setname | Поменять имя (вывеску) уже существующего бота |
/setdescription | Текст, который виден до первого запуска бота |
/setuserpic | Поставить боту аватарку |
/token | Показать токен ещё раз, если ты его потерял |
/revoke | Отозвать старый токен и выдать новый (спасение, если токен утёк!) |
/deletebot | Удалить бота навсегда |
Особенно запомни две последние строчки. Команда /token вернёт ключ, если ты случайно потерял заметку. А /revoke — твоя кнопка «пожарной тревоги»: если токен вдруг попал не в те руки, ты заходишь к BotFather, отзываешь старый ключ, и он мгновенно перестаёт работать. Бот при этом никуда не денется — просто получит новый токен, а старый превратится в тыкву.
Маленькое отступление: как вообще выглядит токен внутри
Тебе не нужно разбирать токен руками — это сделает aiogram. Но чтобы ты не боялся этой длинной строки, давай на чистом Python (без всякого Telegram, это просто строка) посмотрим, из чего она состоит. Токен — это две части, склеенные двоеточием: слева — числовой id бота, справа — секретная часть.
token = "7654321098:AAH-ExampleTokenKeepSecret"
bot_id, secret = token.split(":")
print("id бота:", bot_id)
print("длина секретной части:", len(secret))Вывод:
id бота: 7654321098 длина секретной части: 26
Видишь? Ничего страшного — обычная строка, которую можно разрезать методом split. Число слева не секретное (оно даже видно в некоторых местах), а вот всё, что справа от двоеточия, и есть та самая «секретная часть» пароля. Поэтому прятать надо токен целиком.
Частые ошибки новичков
На этом шаге спотыкаются почти все. Лови список граблей, чтобы пройти мимо них.
- Написал не тому «BotFather». В поиске полно клонов без синей галочки. Если «BotFather» просит у тебя номер телефона, деньги или твой пароль от Telegram — это мошенник, закрывай чат. Настоящий BotFather никогда ничего такого не спрашивает: он только выдаёт токены.
- Путаешь имя и юзернейм. Имя — это красивая вывеска (можно русское, с эмодзи). Юзернейм — технический адрес (только латиница и обязательно с
botна конце). На шаге 3 нельзя написатьChickHelperBot«чтобы сразу», а на шаге 4 —Цыплёнок 🐤: BotFather такой юзернейм не примет. - Юзернейм без
botна конце. Если ввести простоchickhelper, BotFather откажет: «Sorry, the username must end in bot». Добавляйbotили_bot— и всё пройдёт. - Скопировал токен с лишним пробелом или не до конца. Очень частая беда: при копировании прилипает пробел в начале/конце или отрезается последний символ. Потом в уроках с кодом бот молча не запускается. Совет: копируй токен, нажимая прямо на него в сообщении BotFather, — так берётся ровно вся строка.
- Выложил токен на всеобщее обозрение. Скриншот в чат, коммит в публичный репозиторий, отправка «другу глянуть» — и токен считается скомпрометированным. Если это случилось, не паникуй: зайди в BotFather, выполни
/revokeдля своего бота и получи свежий токен. Старый сразу перестанет работать.
Мини-практика
Теперь твоя очередь. Сделай это прямо сейчас, не откладывая, — дальше по курсу нам понадобится живой бот и его токен.
- Найди настоящего
@BotFather(синяя галочка!) и нажми Start. - Отправь
/newbotи создай бота. Имя пусть будет связано с «Цыплёнком» — так его легко узнать в списке. Юзернейм придумай свой (он точно будет отличаться отChickHelperBot, ведь тот может быть занят). - Скопируй токен и сохрани его в заметку с названием вроде «токен цыплёнка». Не в общий чат — только себе.
- Со звёздочкой: зайди в
/mybots, выбери своего бота и поставь ему аватарку через/setuserpicи короткое описание через/setdescription. Пусть выглядит как настоящий. - Проверка храбрости: найди своего бота по юзернейму (
t.me/твой_юзернейм), открой чат и нажми Start. Бот пока промолчит — и это нормально! Внутри он ещё «пустой»: программу, которая будет отвечать, мы напишем в следующем модуле. Сейчас важно лишь убедиться, что бот существует и открывается.
Если на любом шаге BotFather ответил тебе незнакомой английской фразой — не пугайся. Чаще всего это либо «username is already taken» (придумай другой юзернейм), либо «username must end in bot» (добавь bot на конец). Всё остальное он подскажет сам.
И ещё один совет напоследок: не создавай по десять ботов «про запас». Каждый бот — это отдельный токен, который надо хранить, и потом легко запутаться, какой ключ от какого цыплёнка. Для всего курса нам нужен ровно один бот — наш «Цыплёнок-помощник». Если позже захочешь поэкспериментировать с чем-то своим, заведёшь второго отдельно. А пока пусть будет один, зато аккуратно настроенный.
Итоги
Поздравляю — у тебя теперь есть собственный Telegram-бот! Давай закрепим, что мы сделали:
- познакомились с BotFather — официальным ботом, который создаёт других ботов;
- через команду
/newbotзавели нового бота, придумав ему имя (вывеску) и юзернейм (адрес, обязательно сbotна конце); - получили токен — секретный ключ-пароль, по которому Telegram будет узнавать команды от нашей программы;
- запомнили, что токен нельзя показывать никому, а если он утёк — спасает команда
/revoke.
Самое важное, что у тебя теперь лежит в надёжном месте, — это токен. Он понадобится буквально в следующих уроках. А дальше мы наконец установим Python-окружение и саму библиотеку aiogram — ту самую асинхронную библиотеку, на которой будет работать «Цыплёнок-помощник». Подготовим папку проекта, файл bot.py и научимся аккуратно подключать к коду наш свежий токен. Цыплёнок вот-вот сделает первый писк!