Telegram Bot API
🌐 Русский

Токен бота Telegram: как получить, где найти, как проверить и отозвать

· 7 мин чтения

Токен бота Telegram выдаёт @BotFather: для нового бота он приходит сразу после команды /newbot, а у существующего его можно посмотреть в меню /mybots → бот → API Token. Это строка вида 123456789:AAEexampleTokenReplaceWithYours, которая служит боту и логином, и паролем к Bot API. Ниже — как получить токен, где взять его у уже созданного бота, как проверить через getMe, что делать при утечке и как безопасно передавать токен в n8n и ИИ-ассистенты.

Что такое токен бота и как он выглядит

Токен — уникальный ключ, который Telegram выдаёт каждому боту при создании. Пример из официальной документации: 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Он состоит из двух частей:

Токен передаётся прямо в адресе запроса, сразу после слова bot: https://api.telegram.org/bot<token>/getMe. Отдельных прав у токена нет — он даёт полный доступ к боту: кто знает токен, тот получает входящие сообщения, пишет от имени бота и меняет его настройки.

Как получить токен бота в @BotFather

  1. Откройте @BotFather и отправьте /newbot.
  2. Введите имя бота — его видят пользователи, потом его можно поменять.
  3. Введите username: 5–32 символа, латиница, цифры и подчёркивания, окончание bot (например, shop_helper_bot).
  4. В ответ BotFather пришлёт ссылку на бота и токен. Скопируйте его целиком, без пробелов и переносов строки.

Подробно про создание бота, первые запросы и команды — в гайде как создать бота в Телеграм.

Где взять токен бота, который уже создан

  1. Отправьте @BotFather команду /mybots.
  2. Выберите бота из списка.
  3. Нажмите 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: значит, кто-то другой уже перенаправил апдейты бота к себе.

  1. Отправьте @BotFather /revoke и выберите бота. Другой путь — /mybots → бот → API Token → Revoke current token.
  2. BotFather выдаст новый токен, старый сразу перестанет работать.
  3. Обновите токен везде: переменные окружения на сервере, секреты CI/CD, учётные данные в n8n и других сервисах.
  4. Перезапустите бота и проверьте getWebhookInfo. Если адрес вебхука не ваш, установите свой заново через setWebhook.

Удалить токен из истории git тоже полезно, но это не замена отзыву: всё, что хоть раз было опубликовано, считайте утёкшим.

Как хранить токен бота

# .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.

Частые ошибки с токеном

ОшибкаПричинаЧто делать
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.