Что такое бот и что нужно
Бот в Telegram — это специальный аккаунт, за которым стоит программа, а не человек. Зарегистрировать его можно за пару минут прямо в Telegram, бесплатно: платформа ботов бесплатна и для пользователей, и для разработчиков (core.telegram.org/bots).
Важно понимать с самого начала: создание в @BotFather — это только «оболочка» — имя, адрес и ключ доступа. Отвечать бот начнёт, когда к нему подключат программу, которая где-то работает. Telegram об этом пишет прямо: чтобы бот заработал, его заводят в @BotFather, а потом подключают к своему серверу через API (Bots FAQ). Ниже — обе части: регистрация и варианты, чем бота «оживить».
Регистрация в @BotFather
t.me/botfather есть в документации Telegram) — у подделок похожие имена. Нажмите «Начать» / Start./newbot. Он по очереди спросит два значения — имя и username.t.me/…. Правила: 5–32 символа, только латиница, цифры и подчёркивание, в конце обязательно bot — например weather_msk_bot или WeatherMskBot. Username нельзя сменить после создания, так что выбирайте внимательно. Если имя занято, BotFather попросит другое.123456789:AA…. Это ключ, которым программа управляет ботом. Скопируйте его в надёжное место (менеджер паролей, переменная окружения на сервере).Как хранить токен
Токен — это одновременно логин и пароль бота. Telegram предупреждает: им может воспользоваться кто угодно, у кого он окажется, — читать сообщения, которые пишут боту, и отвечать от его имени. Поэтому:
- не публикуйте токен в чатах, на скриншотах и в открытых репозиториях — держите его в переменной окружения или файле, который не попадает в git;
- не отправляйте токен «помощникам» и сервисам, которым не доверяете;
- если токен утёк или потерян — сгенерируйте новый командой
/tokenв чате с BotFather (для нужного бота); после этого старый токен уже не подойдёт — не забудьте заменить его в программе.
Описание, аватарка и команды
Всё оформление делается командами в чате с @BotFather — отправьте команду и выберите бота. То же самое доступно кнопками через /mybots и в мини-приложении BotFather.
| Команда | Что делает |
|---|---|
/setname | Сменить имя бота |
/setdescription | Описание до 512 символов — его видят в начале чата с ботом, ещё до первого сообщения (блок «What can this bot do?») |
/setabouttext | Короткий текст «о боте» до 120 символов — в профиле и при пересылке ссылки на бота |
/setuserpic | Аватарка бота |
/setcommands | Список команд — появляется подсказкой, когда пользователь набирает / |
/setjoingroups | Разрешить или запретить добавлять бота в группы |
/mybots | Меню со всеми вашими ботами: настройки, токен, передача другому владельцу |
/deletebot | Удалить бота и освободить username — отменить нельзя |
Проверка: работает ли токен
https://api.telegram.org/bot<токен>/метод, так что никакой программы для проверки не нужно. Подставьте свой токен вместо <TOKEN> (слово bot перед ним остаётся) и выполните команду в терминале — или просто откройте этот адрес в браузере.curl https://api.telegram.org/bot<TOKEN>/getMe
"ok":true и данными бота — примерно так: {"ok":true,"result":{"id":123456789,"is_bot":true,"first_name":"Погода Москва","username":"weather_msk_bot", …}}.Что означают ошибки (мы проверили на заведомо неверных данных):
{"ok":false,"error_code":401,"description":"Unauthorized"}— токен неверный или уже заменён через/token;{"ok":false,"error_code":404,"description":"Not Found"}— ошибка в адресе: чаще всего забыли словоbotперед токеном или скопировали токен не целиком;- запрос долго висит и обрывается по тайм-ауту — из вашей сети или с сервера не открывается
api.telegram.org. Это вопрос сети, а не бота: варианты решения — в статье прокси для Telegram-бота.
Никогда не вставляйте настоящий токен в онлайн-сервисы «проверки ботов» — достаточно своего браузера или curl.
Как «оживить» бота: код или конструктор
Вариант 1 — написать код. Официальный пошаговый туториал Telegram (From BotFather to «Hello World») ведёт от получения токена до работающего бота; основной язык там Java, есть примеры на C#, Python, Go и TypeScript. Обычно берут готовую библиотеку, которая скрывает HTTP-запросы: на Python популярны python-telegram-bot, aiogram и pyTelegramBotAPI, на JavaScript — grammY и Telegraf. Все они есть в официальном списке библиотек. Программе нужно где-то работать постоянно — на вашем компьютере для проверки, а для «боевого» бота — на сервере или хостинге; это единственное, за что, возможно, придётся платить.
Вариант 2 — конструктор без кода. Есть сторонние сервисы, где бота собирают из блоков: вы вставляете токен
из BotFather, а сервис сам принимает и отправляет сообщения. Это быстро для простых сценариев — меню, ответы
на частые вопросы, приём заявок. Минусы: у многих платные тарифы и ограничения бесплатных, бот зависит от
сервиса, а сервис с вашим токеном получает полный доступ к боту и к сообщениям пользователей. Выбирая
конструктор, читайте его условия и политику обработки данных; если перестали им пользоваться — выпустите
новый токен командой /token.
Сам Telegram официальных конструкторов не предлагает и честно пишет, что готового способа сделать работающего бота без программирования нет.
Как добавить бота в канал
Частый сценарий — бот, который публикует посты в ваш канал (например, по расписанию). Для этого бота делают администратором канала:
- откройте настройки канала → «Администраторы» → «Добавить администратора»;
- найдите бота по username и выберите его;
- оставьте право публиковать сообщения — именно оно нужно, чтобы бот мог писать в канал; остальные права давайте только по необходимости.
После этого программа бота может отправлять сообщения методом sendMessage, указав в
chat_id адрес канала в формате @имя_канала (для публичного канала). Бот, состоящий
в канале, получает все его посты — на этом строятся боты для статистики и автопостинга.
FAQ
Создать бота в Telegram — бесплатно?
Почему username бота должен заканчиваться на «bot»?
bot (например tetris_bot или TetrisBot). Сменить username потом нельзя, имя — можно.Что делать, если токен бота украли или он попал в интернет?
/token в чате с @BotFather — старый после этого не подойдёт. Не забудьте заменить токен в своей программе.Бот создан, но ничего не отвечает. Почему?
getMe.Можно ли создать бота с телефона?
Как удалить бота?
/deletebot в @BotFather. Бот удалится, а его username освободится; отменить это нельзя.