Токен бота Telegram: как получить, где найти, как проверить и отозвать
Токен бота Telegram выдаёт @BotFather: для нового бота он приходит сразу после команды /newbot, а у существующего его можно посмотреть в меню /mybots → бот → API Token. Это строка вида 123456789:AAEexampleTokenReplaceWithYours, которая служит боту и логином, и паролем к Bot API. Ниже — как получить токен, где взять его у уже созданного бота, как проверить через getMe, что делать при утечке и как безопасно передавать токен в n8n и ИИ-ассистенты.
Что такое токен бота и как он выглядит
Токен — уникальный ключ, который Telegram выдаёт каждому боту при создании. Пример из официальной документации: 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Он состоит из двух частей:
- до двоеточия — числовой id бота, тот же, что возвращает
getMeв полеid. Это не секрет, но и не chat id: не подставляйте это число вchat_id; - после двоеточия — секретная часть из латинских букв, цифр,
_и-.
Токен передаётся прямо в адресе запроса, сразу после слова bot: https://api.telegram.org/bot<token>/getMe. Отдельных прав у токена нет — он даёт полный доступ к боту: кто знает токен, тот получает входящие сообщения, пишет от имени бота и меняет его настройки.
Как получить токен бота в @BotFather
- Откройте @BotFather и отправьте
/newbot. - Введите имя бота — его видят пользователи, потом его можно поменять.
- Введите username: 5–32 символа, латиница, цифры и подчёркивания, окончание
bot(например,shop_helper_bot). - В ответ BotFather пришлёт ссылку на бота и токен. Скопируйте его целиком, без пробелов и переносов строки.
Подробно про создание бота, первые запросы и команды — в гайде как создать бота в Телеграм.
Где взять токен бота, который уже создан
- Отправьте @BotFather команду
/mybots. - Выберите бота из списка.
- Нажмите API Token — BotFather покажет текущий токен.
Не используйте для этого команду /token: она не показывает текущий токен, а генерирует новый. Её место — ситуация, когда старый токен потерян или скомпрометирован, и после неё токен придётся обновить везде, где работает бот.
BotFather показывает только ботов, созданных с вашего аккаунта. Если бота делал подрядчик или коллега, попросите передать его вам: /mybots → бот → Transfer ownership. Передать бота можно только пользователю, который хотя бы раз с ним общался.
Как проверить токен бота через getMe
getMe — самый простой способ проверить токен: метод без параметров возвращает информацию о боте.
curl -s "https://api.telegram.org/bot123456789:AAEexampleTokenReplaceWithYours/getMe"
Рабочий токен (ответ сокращён):
{
"ok": true,
"result": {
"id": 123456789,
"is_bot": true,
"first_name": "Помощник магазина",
"username": "shop_helper_bot",
"can_join_groups": true,
"can_read_all_group_messages": false,
"supports_inline_queries": false
}
}
Сверьте username и id: так легко убедиться, что токен от нужного бота, а не от тестового. Неверный или отозванный токен:
{"ok": false, "error_code": 401, "description": "Unauthorized"}
Ошибка 401 Unauthorized почти всегда означает одно из трёх: при копировании потерялся символ или добавился пробел, токен уже перевыпущен через /revoke или /token, либо это токен бота из тестовой среды Telegram — такие боты работают только с адресом вида https://api.telegram.org/bot<token>/test/METHOD_NAME. Если же приходит 404 Not Found, неверен сам адрес: например, перед токеном нет слова bot.
Проверка в коде, например перед запуском бота:
import os
import requests
token = os.environ["BOT_TOKEN"].strip()
data = requests.get(f"https://api.telegram.org/bot{token}/getMe", timeout=10).json()
if data["ok"]:
print("Токен рабочий, бот @" + data["result"]["username"])
else:
print("Ошибка", data["error_code"], data["description"])
Если токен вводят пользователи, например в форме вашего сервиса, отсеивайте явные опечатки ещё до запроса к API. Регулярное выражение проверяет только формат — рабочий ли токен, скажет лишь getMe:
const looksLikeToken = (value) => /^\d+:[A-Za-z0-9_-]+$/.test(value.trim());
looksLikeToken('123456789:AAEexampleTokenReplaceWithYours'); // true
looksLikeToken('bot123456789:AAEexampleTokenReplaceWithYours'); // false: префикс bot нужен только в URL
Без терминала: откройте getMe в Bot API Tester, вставьте токен и нажмите Ctrl+Enter. Токен хранится только в localStorage вашего браузера, запросы идут напрямую на api.telegram.org.
Как отозвать токен, если он утёк
Токен стоит считать скомпрометированным, если он попал в публичный репозиторий, чат, скриншот, лог или в клиентский код. Ещё один тревожный признак — getWebhookInfo показывает чужой адрес в поле url: значит, кто-то другой уже перенаправил апдейты бота к себе.
- Отправьте @BotFather
/revokeи выберите бота. Другой путь —/mybots→ бот → API Token → Revoke current token. - BotFather выдаст новый токен, старый сразу перестанет работать.
- Обновите токен везде: переменные окружения на сервере, секреты CI/CD, учётные данные в n8n и других сервисах.
- Перезапустите бота и проверьте
getWebhookInfo. Если адрес вебхука не ваш, установите свой заново черезsetWebhook.
Удалить токен из истории git тоже полезно, но это не замена отзыву: всё, что хоть раз было опубликовано, считайте утёкшим.
Как хранить токен бота
- Только на сервере. Никогда не вшивайте токен во фронтенд, мобильное приложение или расширение браузера — его оттуда легко достать.
- В переменных окружения, а не в коде. Файл
.envдобавьте в.gitignoreдо первого коммита. - Не логируйте URL запросов. Токен входит в адрес, поэтому он легко оказывается в логах HTTP-клиента и текстах исключений.
- Разные боты для разработки и продакшена. Документация Telegram советует тестировать на отдельном боте со своим токеном.
# .env — этот файл не должен попасть в репозиторий
BOT_TOKEN=123456789:AAEexampleTokenReplaceWithYours
// Node.js 20.6+: node --env-file=.env bot.js
const token = process.env.BOT_TOKEN;
if (!token) throw new Error('Не задана переменная окружения BOT_TOKEN');
Токен бота для n8n и ИИ-ассистентов
Сервисы автоматизации вроде n8n (Telegram node) и ИИ-ассистенты, которые подключаются к Telegram (например, OpenClaw), почти всегда просят два значения: токен бота и chat id. Токен даёт сервису право действовать от имени бота, а chat id говорит, куда писать: в ваш личный чат, группу или канал. Как узнать chat id, подробно разобрано в гайде как узнать chat id в Telegram.
- Создайте для каждой интеграции отдельного бота: при утечке вы отзовёте один токен, а не сломаете всё сразу.
- Проверьте токен через
getMeдо того, как вставлять его в сервис, — так вы сразу отличите опечатку от проблем на стороне интеграции. - Один токен — один получатель апдейтов. Если сервис принимает апдейты через вебхук, а ваш скрипт с тем же токеном вызывает
getUpdates, скрипт получит409 Conflict. Подробнее — в гайде вебхук для Telegram-бота.
Частые ошибки с токеном
| Ошибка | Причина | Что делать |
|---|---|---|
401 Unauthorized | Опечатка, лишний пробел, отозванный токен | Скопируйте токен заново из /mybots → бот → API Token и проверьте через getMe |
404 Not Found | Неверный адрес: нет bot перед токеном или опечатка в методе | Соберите адрес по шаблону https://api.telegram.org/bot<token>/getMe |
409 Conflict | Установлен вебхук или токен используют два процесса | Оставьте один экземпляр бота или вызовите deleteWebhook |
400 Bad Request: chat not found при проверке пары токен + chat id | Токен от другого бота: этот бот не состоит в чате, или пользователь его не запускал | Сверьте username в ответе getMe и напишите нужному боту или добавьте его в чат |
| Бот работал и вдруг начал получать 401 | Токен перевыпустили через /revoke или /token | Возьмите актуальный токен в /mybots и обновите его во всех сервисах |
Частые вопросы
Где взять токен бота Телеграм?
У @BotFather: для нового бота токен приходит после команды /newbot, для уже созданного — откройте /mybots, выберите бота и нажмите API Token.
Показывает ли команда /token текущий токен?
Нет. По документации /token генерирует новый токен — она нужна, если старый потерян или скомпрометирован. Чтобы посмотреть текущий токен, используйте /mybots → бот → API Token.
Как проверить, рабочий ли токен бота?
Вызовите https://api.telegram.org/bot<token>/getMe. Ответ "ok": true с данными бота означает, что токен рабочий, а 401 Unauthorized — что он неверный или отозван.
Что может сделать человек, у которого есть токен бота?
Всё, что может сам бот: получать входящие сообщения, писать от его имени, менять вебхук, команды и описание. Поэтому при утечке токен нужно сразу отозвать.
Можно ли вернуть токен после отзыва?
Нет. После /revoke старый токен перестаёт работать навсегда, и все программы и сервисы нужно перевести на новый.
Зачем n8n и ИИ-ассистентам токен и chat id?
Токен даёт сервису право действовать от имени бота, а chat id указывает, в какой чат писать. Для каждой интеграции лучше завести отдельного бота, чтобы при утечке отозвать только его токен.
Читайте также
Как создать бота в Телеграм: от @BotFather до первого сообщения
Как создать бота в Телеграм: регистрация в @BotFather, токен, проверка через getMe, первое сообщение на curl и Python, команды и описание бота.
Что нового в Telegram Bot API 10.0–10.3: rich-сообщения, эфемерные сообщения и гостевой режим
Что нового в Telegram Bot API 10.0–10.3: rich-сообщения, эфемерные сообщения, гостевой режим, заявки на вступление — с примерами и чек-листом миграции.
Лимиты Telegram Bot API: сообщения в секунду, ошибка 429 и размеры файлов
Все лимиты Telegram Bot API в одном месте: сообщения в секунду, ошибка 429 и retry_after, платные рассылки, размеры файлов, длина текста и подписи.
Как отправить сообщение через бота Telegram: sendMessage, разметка и кнопки
Как отправить сообщение через бота Telegram: sendMessage на curl, Python и JavaScript, parse_mode HTML и MarkdownV2, кнопки и ошибки 400, 403, 429.
Вебхук для Telegram-бота: настройка setWebhook, проверка и удаление
Как настроить вебхук Телеграм-бота: требования к HTTPS и портам, setWebhook с secret_token, проверка через getWebhookInfo, удаление и частые ошибки.
Как узнать chat id в Telegram: пользователь, группа, канал и тема форума
Как узнать chat id в Telegram через getUpdates: личный чат, группа, супергруппа, канал и тема форума. Форматы id с -100 и что делать с пустым result.
Тестирование Telegram Mini App: от браузера до отладки на телефоне
Тестирование Telegram Mini App по шагам: mock-режим в браузере, HTTPS-туннель для localhost, тестовая среда, DevTools на телефоне и проверка initData.