Токен Telegram-бота: что это, где взять и как защитить бота
Что такое токен бота, где взять его в @BotFather и где хранить. Что сможет чужой человек с вашим токеном и как перевыпустить его без долгого простоя.
Содержание 10 разделов
Токен Telegram-бота нужен серверу, чтобы работать с Telegram от имени бота: получать сообщения, отвечать клиентам, менять кнопки и описание. Кто знает токен, тот управляет ботом, поэтому беречь его нужно как пароль от банковского кабинета. Разбираем, где взять токен, где хранить, что будет при утечке и как перевыпустить его без долгого простоя.
Что такое токен бота простыми словами
Токен выдаёт @BotFather, официальный бот Telegram для создания ботов. Это строка вида 123456789:AAH3kf9...: число до двоеточия совпадает с ID бота, дальше идёт секретная часть. Username бота похож на адрес дома, его печатают на визитках. Токен похож на ключ от дома, и лежать он должен только у сервера бота.
С токеном можно получать новые сообщения и нажатия кнопок, писать тем, кто уже запускал бота, публиковать сообщения в группах и каналах, где бот состоит, менять описание и команды и переставлять вебхук на другой адрес.
Историю переписки токен не открывает: в Bot API нет метода, который выгрузил бы старые сообщения. Клиентская база, заявки и заказы лежат в базе данных на вашем сервере, и к ней токен доступа не даёт. Подробно о том, что где лежит, мы писали в статье где хранятся данные Telegram-бота.
Как получить токен бота в @BotFather
- Откройте @BotFather Найдите его через поиск Telegram. У официального бота синяя галочка.
-
Создайте бота
Отправьте
/newbot, задайте имя и username, который заканчивается наbot, напримерshop_helper_bot. - Скопируйте токен BotFather пришлёт его в ответном сообщении, сразу после фразы про доступ к HTTP API.
Где найти токен, если бот уже создан
Токен существующего бота показывает тот же @BotFather: команда /token или /mybots, выбор бота и кнопка API Token. Работает это только из аккаунта, который создал бота. Если бота когда-то делал фрилансер со своего аккаунта, токен есть только у него. Такого бота стоит забрать себе: в @BotFather есть передача владения другому аккаунту.
Узнать токен чужого бота нельзя, Telegram показывает его только владельцу.
Где хранить токен
Место токена на сервере: в переменных окружения или в файле настроек вроде .env, который не попадает в репозиторий. Утечки обычно случаются по бытовым причинам:
- Репозиторий. Токен, попавший в коммит, остаётся в истории, даже если строку потом удалить. Публичные репозитории постоянно прочёсывают боты, которые ищут ключи.
- Логи. Запросы к Bot API идут на адрес вида
https://api.telegram.org/bot<токен>/sendMessage. Если бот или прокси пишут в лог полные адреса запросов, токен оседает в логах. - Адрес вебхука. Раньше токен вставляли в путь вебхука, и он попадал в журналы веб-сервера. Сейчас для проверки есть
secret_token, о нём ниже. - Переписка. Токен, отправленный подрядчику в мессенджере, живёт в истории чата на всех устройствах. Надёжнее сразу прописать его на сервере.
Что будет, если токен украдут
Старую переписку и базу посторонний не увидит, но навредить успеет. Одним вызовом setWebhook он направит обновления на свой сервер: ваш бот замолчит, а новые заявки клиентов уйдут к нему. Он может писать тем, кто обращается к боту, публиковать посты в каналах, где бот администратор, и банить участников групп, если у бота есть такие права.
Признаки утечки: бот вдруг перестал получать сообщения, в getWebhookInfo стоит чужой адрес, пользователи спрашивают про сообщения, которые вы не отправляли. Тогда токен перевыпускают сразу.
Как перевыпустить токен
-
Отзовите старый токен
В @BotFather отправьте
/revokeили нажмите Revoke current token в разделе API Token. Старый токен перестаёт работать сразу. - Пропишите новый на сервере Замените значение в переменных окружения и перезапустите бота.
-
Заново выставьте вебхук
Вызовите
setWebhookс новым токеном и тем жеsecret_token, затем напишите боту и проверьте ответ.
Между первым и вторым шагом бот не работает, поэтому перевыпуск делают вместе с разработчиком. Пользователи ничего не теряют: чаты остаются, заново нажимать «Запустить» не нужно, а неполученные обновления Telegram хранит до 24 часов. Кроме утечки, токен меняют, когда уходит сотрудник или подрядчик с доступом, когда токен побывал в репозитории или в чате и когда бота передают новому владельцу. Как проходит такая передача, видно по истории продажи @shieldy_bot за $329 000.
Права бота в группах и доступ команды
Когда бота делают администратором группы, включайте только нужные права: боту, который отвечает на вопросы, незачем банить людей. По умолчанию бот в группе видит только команды и ответы на свои сообщения, а бот-администратор получает все сообщения чата. Если читать всю переписку боту не нужно, админом его не делайте.
С людьми тот же принцип:
- Бот принадлежит аккаунту компании или владельца, и на этом аккаунте включён облачный пароль: кто войдёт в аккаунт, получит и токен.
- Админ-команды бота проверяются по числовому Telegram ID. Username можно сменить, и освободившееся имя займёт кто-то другой.
- Доступ к серверу и админке у каждого свой и закрывается, когда человек уходит. Как устроить роли, мы разбирали в статье про админ-панель для Telegram-бота.
Мы работаем так же: исходный код и все доступы к боту остаются у клиента.
Защита вебхука: secret_token
В режиме вебхука Telegram отправляет обновления на адрес вашего сервера. Если адрес узнает посторонний, он сможет присылать туда поддельные сообщения. Защита есть в Bot API с версии 6.1 (2022 год): в setWebhook передают параметр secret_token, и Telegram добавляет его в заголовок X-Telegram-Bot-Api-Secret-Token каждого запроса. Сервер отбрасывает запросы, где заголовка нет или он не совпал. Остальные меры, от фильтра по IP до лимитов, собраны в статье про DDoS-атаки на Telegram-бота.
Токен бота в MAX
В MAX ботов создают на платформе для партнёров dev.max.ru. Завести бота может подтверждённая организация: ООО, ИП, а с 15 июня 2026 года и самозанятые. Бот проходит модерацию, токен лежит в настройках бота, в разделе «Чат-бот и мини-приложение». Правила хранения те же: только на сервере, не в коде и не в переписке. Если бот работает в обоих мессенджерах на одном бэкенде, токенов два. Как мы делаем таких ботов, рассказываем на странице ботов для MAX.
Частые вопросы о токене бота
Что такое токен в Telegram?
Секретный ключ бота, который выдаёт @BotFather. По нему сервер получает сообщения для бота и отвечает от его имени. Токен есть только у ботов, обычный аккаунт входит в Telegram по номеру телефона.
Где взять токен бота?
В @BotFather: после команды /newbot он присылает токен сразу. Токен существующего бота показывают /token или /mybots и кнопка API Token, но только в аккаунте, который бота создал.
Можно ли узнать токен чужого бота?
Нет, Telegram показывает токен только владельцу. Предложение узнать токен чужого бота почти всегда попытка выманить ваш собственный.
Что делать, если токен бота утёк?
Отозвать его в @BotFather командой /revoke, прописать новый токен на сервере и заново выставить вебхук. Пока новый токен не на сервере, бот молчит, поэтому делайте это вместе с разработчиком.
Где взять токен бота в MAX?
В настройках бота на платформе MAX для партнёров, в разделе «Чат-бот и мини-приложение». Создать бота там может подтверждённая организация: ООО, ИП или самозанятый.