Главная · Справка · Как получить токен Telegram-бота

Как получить токен Telegram-бота

Токен выдаёт @BotFather: сразу после создания бота командой /newbot, а потом в любой момент через /mybots. Это одна строка из цифр, двоеточия и секретной части — по ней ЧБТ проверяет бота и сам ставит вебхук. Ниже — где найти токен, как не испортить его при копировании, куда вставить в кабинете, что означают ошибки и как заменить токен, если он утёк.

Токен нового бота: /newbot у @BotFather

@BotFather — служебный бот самого Telegram, через который создают и настраивают всех ботов. Найдите его в поиске по точному имени: у настоящего есть синяя галочка.

  1. Отправьте /newbot.
  2. Задайте имя, которое клиенты увидят в шапке чата, затем username — латиницей и с окончанием bot.
  3. BotFather ответит поздравлением со ссылкой на бота, а ниже, после фразы «Use this token to access the HTTP API:», пришлёт строку — это и есть токен.

Записывать токен в заметки не нужно: пока бот существует, BotFather покажет его снова. Как выбрать имя и username, поставить аватар и описание — в статье как создать Telegram-бота.

Бот уже есть: где посмотреть токен

  • /mybots → выберите бота → кнопка «API Token». BotFather пришлёт действующий токен. Рядом будет кнопка «Revoke current token» — она не показывает токен, а выпускает новый и отключает старый, так что без причины её не нажимайте.
  • /token → выберите бота — тот же токен без лишних шагов.

Токен виден только в аккаунте Telegram, которому принадлежит бот. Если бота заводил подрядчик или бывший сотрудник со своего телефона, получить токен можно только у него. В кабинете ЧБТ токен тоже не посмотреть: после подключения ЧБТ держит его зашифрованным и нигде в интерфейсе не выводит. Понадобился токен для другого сервиса — берите его у BotFather.

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

Это одна строка без пробелов: цифры, двоеточие и длинная часть из латинских букв, цифр, дефисов и подчёркиваний — 1234567890:AAH…. Цифры до двоеточия — ID бота в Telegram, всё после — секрет. По сути это логин и пароль бота сразу: кто знает строку целиком, тот получает сообщения, которые пишут боту, и отвечает от его имени. Поэтому токен не отправляют в рабочие чаты, не выкладывают в репозиторий и не оставляют на скриншотах.

С токеном путают две публичные строки: username (@myata_salon_bot) и ссылку https://t.me/myata_salon_bot. Это адрес бота для клиентов, в поле «Токен» они не подойдут.

Копируйте токен прямо из сообщения BotFather: в приложении Telegram он набран моноширинным шрифтом, и нажатие на него копирует строку целиком. ЧБТ передаёт в Telegram ровно то, что вставлено в поле, ничего не обрезая, — лишний пробел по краям или потерянный последний символ превращают рабочий токен в ошибку.

Куда вставить токен в ЧБТ

  1. Войдите в app.chbt.io, выберите нужного бота и перейдите в раздел «Каналы».
  2. Нажмите «Подключить канал» — страница прокрутится к блоку «Подключить новый канал» и раскроет карточку Telegram. То же самое делает кнопка «Подключить» в самой карточке.
  3. Заполните поля: «Название канала» — необязательно, для себя; «Токен» — строка от BotFather.
  4. Нажмите «Подключить Telegram».

Кабинет вернёт вас на «Обзор» бота: в карточке «Каналы» появится строка Telegram со статусом. «Работает» — токен принят. «Ошибка» — рядом будет ответ Telegram, что он значит, разобрано ниже. Если название не заполняли и токен принят, строку подпишут username бота. Подключать каналы могут владелец бота и админы, у роли «Оператор» блока подключения нет. Telegram доступен на любом тарифе, включая Бесплатный. Что проверить после подключения — активный сценарий и первый /start с телефона, — в инструкции по подключению Telegram.

Что ЧБТ делает с токеном сам

  • Проверяет. Запрос getMe к Telegram показывает, что токен настоящий, и возвращает username бота.
  • Ставит вебхук. Методом setWebhook ЧБТ сообщает Telegram адрес вида https://app.chbt.io/webhook/telegram/<номер канала> и секретный ключ. Запросы без этого ключа ЧБТ отбрасывает, поэтому подсунуть боту чужие сообщения через адрес вебхука не получится.
  • Хранит и использует. Токен лежит в базе в зашифрованном виде; с ним бот отвечает клиентам, а операторы пишут из «Диалогов».

Свой сервер, домен и ручная настройка не нужны — поля для адреса вебхука в кабинете нет. Если вебхук сбился, в строке канала есть кнопка «Переустановить webhook»: она заново проверяет сохранённый токен и снова ставит вебхук ЧБТ.

Ошибки: Unauthorized, Not Found и другие

  • Сразу после подключения — «Ошибка» с текстом «Unauthorized». Формат верный, но Telegram такого токена не знает: опечатка или обрезанный конец секретной части, пробел после токена либо токен уже заменён через /revoke. Возьмите действующий в /mybots → «API Token» и подключите Telegram ещё раз, а строку с ошибкой удалите: кнопка «⋯» в строке канала → «Удалить». Переписки в такой строке нет — бот через неё не работал.
  • «Ошибка» с текстом «Not Found». В поле попал не токен: username, ссылка t.me, строка без цифр до двоеточия или с пробелом в начале. Скопируйте токен из сообщения BotFather заново.
  • Канал работал, а теперь «токен бота отклонён (401 Unauthorized)». Токен отозвали или заменили у BotFather — нужен новый, порядок замены ниже.
  • «Переустановить webhook» не помогает. Кнопка работает с тем токеном, который сохранён в канале. Если он отозван, Telegram будет отвечать «Unauthorized» при каждом нажатии.
  • Статус «Работает», а в «Диалогах» пусто. Токен в порядке, но сообщения уходят в другое место — разбор в следующем разделе.

Если токен верный, а бот всё равно молчит, дело уже не в токене: пройдите чеклист «бот в Telegram молчит».

Бот уже подключён к другому сервису

Создавать нового бота не нужно: подойдёт токен существующего, а подписчики, username и ссылка останутся прежними. Но у бота Telegram может быть только один вебхук, и после подключения сообщения начнёт получать ЧБТ. Прежний сервис их больше не увидит, а код, который забирал сообщения через getUpdates, получит от Telegram ошибку Conflict: can't use getUpdates method while webhook is active — так и должно быть.

Обратная ситуация коварнее. Если старый сервис не отключить, при перезапуске он может снова поставить вебхук на себя или снять его, и до ЧБТ сообщения доходить перестанут. Строка канала при этом так и показывает «Работает»: ЧБТ не узнаёт, что Telegram шлёт сообщения в другое место. Удалите токен из старого сервиса или остановите код, затем нажмите «Переустановить webhook».

Токен утёк или отозван: как заменить его в канале

Новый токен выпускается за минуту: /revoke у BotFather и выбор бота или «Revoke current token» в /mybots → «API Token». Старый сразу перестаёт действовать; бот, его username и подписчики остаются. Так стоит сделать, если токен попал в общий чат или публичный репозиторий, и когда закончил работу подрядчик, которому вы его давали.

Поменять токен в уже подключённом канале нельзя: такого поля нет, а «Переустановить webhook» берёт старый, сохранённый токен. Поэтому канал подключают заново:

  1. «Каналы» → «Подключить канал» → в карточке Telegram вставьте новый токен → «Подключить Telegram». ЧБТ переведёт вебхук бота на новую строку канала.
  2. Когда у новой строки статус «Работает», удалите старую: кнопка «⋯» → «Удалить».

Карточки клиентов в «Контактах» с тегами и полями не пострадают: они привязаны к аккаунту человека в Telegram, а не к строке канала, и бот узнает тех же людей. А переписка, которая шла через удалённую строку, пропадёт из «Диалогов» вместе с ней — если в ней есть что-то важное, сохраните это до удаления.

Если отозвать токен и не заменить его в ЧБТ, первая же попытка ответить от имени бота получит от Telegram 401. Строка канала перейдёт в «Ошибку», а владельцу и админам бота придёт письмо «Бот … требует внимания» — не чаще раза в сутки и если в «Уведомлениях» не выключены «Email-уведомления» или пункт «Статус ботов». Письма лучше не ждать: меняйте токен в ЧБТ сразу после /revoke.

Частые вопросы

Где посмотреть токен, если сообщение от BotFather потерялось?
В том же BotFather: /mybots → выберите бота → «API Token» или команда /token. Кабинет ЧБТ после подключения токен не показывает.

Есть ли у токена срок действия?
Нет. Токен работает, пока его не отзовут командой /revoke или пока бот не удалён. Переподключать канал в ЧБТ по расписанию не нужно.

Бот перестанет работать после /revoke?
Сам бот в Telegram останется со всеми подписчиками, но ЧБТ со старым токеном отвечать не сможет. Подключите в «Каналах» Telegram с новым токеном и удалите старую строку канала.

Можно ли подключить один токен к двум ботам ЧБТ?
Кабинет примет его дважды, но сообщения будет получать только тот бот ЧБТ, где токен подключили последним: у бота Telegram один вебхук. Чтобы один сценарий работал в нескольких мессенджерах, подключайте каналы внутри одного бота ЧБТ.

Создать бота бесплатно