Для новичка

BotFather выдаёт токен, а не готового бота: как настроить Telegram-бота

|Обновлено: |Автор: Редакция QUASA|5 мин чтения| 2623
BotFather выдаёт токен, а не готового бота: как настроить Telegram-бота

Создание Telegram-бота по-прежнему начинается в BotFather, однако результат этого шага — не готовый собеседник, а учётная запись с токеном доступа. Официальная инструкция Telegram поясняет, что токен идентифицирует бота, может быть отозван и должен храниться как пароль; ответы, кнопки и действия задаются отдельно в программе или конструкторе.

Создать простой сценарий без программирования всё ещё можно, но актуальный выбор уже не сводится к списку конструкторов: их возможности и тарифы меняются, а обязательная техническая цепочка остаётся той же. Нужно зарегистрировать бота, подключить токен к обработчику, описать логику диалога, разместить обработчик в постоянно доступной среде и проверить весь путь пользователя.

Начните с одного результата диалога

До выбора платформы сформулируйте, какое действие бот должен завершить. Это может быть приём заявки, подбор варианта по нескольким параметрам, выдача справочной информации или передача обращения человеку. Задача «автоматизировать продажи» слишком широка: по ней нельзя понять, какие вопросы задавать и что считать успешным завершением.

Для условного бота записи минимальный путь выглядит так: запуск, выбор услуги, ввод контакта, подтверждение данных и сообщение о принятой заявке. Сразу предусмотрите отказ от операции, повторный запуск, неверный формат ответа и недоступность внешней системы. Эти ветки важнее большого стартового меню, часть пунктов которого ведёт в незавершённые сценарии.

Как создать и подключить Telegram-бота

  1. Откройте BotFather и отправьте /newbot. Задайте отображаемое имя и уникальное имя пользователя, следуя подсказкам в чате. Сохраните выданный токен вне переписки и общедоступных файлов.
  2. Выберите конструктор или собственный код. Конструктор удобен для анкет, последовательностей сообщений и несложных ветвлений. Код оправдан, если нужны нестандартные вычисления, сложные права доступа, собственная база данных или глубокая интеграция с внутренними системами.
  3. Подключите токен к выбранному обработчику. В конструкторе для этого обычно есть отдельное поле. В своём приложении токен должен поступать из защищённой конфигурации, а не быть записан непосредственно в исходном файле.
  4. Настройте команду /start. Первое сообщение должно коротко объяснять назначение бота и предлагать ближайшее действие. Если пользователь должен выбирать из ограниченного набора вариантов, покажите кнопки вместо просьбы написать ответ в свободной форме.
  5. Опишите состояния диалога. Обработчик должен знать, ожидается ли сейчас выбор услуги, контакт, подтверждение или другое действие. Состояние следует хранить раздельно для каждого пользователя.
  6. Добавьте внешние системы после основного сценария. Сначала проверьте обмен сообщениями внутри Telegram, затем подключайте CRM, таблицу, платёжного провайдера или собственный API. Такое разделение упрощает поиск неисправности.
  7. Разместите обработчик на сервере или облачной платформе. Программа на выключенном ноутбуке перестанет получать сообщения. При использовании конструктора размещением обычно управляет его поставщик, но условия доступности и ограничения тарифа нужно проверить заранее.

Почему кнопок недостаточно

Пользователь может написать текст вместо нажатия, прислать файл вместо номера телефона, вернуться к диалогу через несколько дней или снова вызвать /start посреди заполнения формы. На каждом шаге бот должен проверять тип и формат входных данных, а затем либо продолжать сценарий, либо показывать понятный способ исправить ответ.

Удобно разделить диалог на небольшие состояния: приветствие, выбор действия, ввод данных, проверка и подтверждение. Кнопка возврата должна вести к предыдущему осмысленному выбору, а команда отмены — завершать текущую операцию без сохранения неполной заявки. После нескольких неудачных ответов лучше показать доступные варианты или способ обратиться к человеку, чем бесконечно повторять одну и ту же ошибку.

Команды, кнопки и мини-приложение не взаимозаменяемы

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

Для первой версии достаточно обработать /start и справку, а также создать собственную команду отмены, если сценарий состоит из нескольких шагов. Названия в меню должны совпадать с реальными обработчиками. Неработающая команда или кнопка без ответа воспринимается как неисправность, даже если остальные ветки настроены правильно.

Как бот получает новые сообщения

Приложению нужно регулярно получать события Telegram. При длительном опросе программа сама запрашивает новые сообщения; при вебхуке события поступают на заранее настроенный сетевой адрес. В документации библиотеки python-telegram-bot для этих режимов предусмотрены отдельные методы запуска приложения.

Длительный опрос проще использовать при разработке и локальной проверке, поскольку не требуется публичный адрес обработчика. Вебхук удобен в инфраструктуре, где уже есть постоянно доступная конечная точка и настроена обработка входящих запросов. Выбор режима не меняет сценарий разговора, но влияет на размещение и диагностику приложения.

Токен нельзя хранить как обычную настройку

Человек, получивший токен, сможет обращаться к Bot API от имени бота, поэтому секрет нельзя публиковать в репозитории, сообщениях поддержки, снимках экрана или журналах ошибок. Для рабочего проекта лучше использовать хранилище секретов, предоставленное платформой размещения, и выдавать доступ только тем процессам и сотрудникам, которым он необходим.

Рекомендации OWASP по секретам охватывают ограничение доступа, ротацию, аудит и запрет на запись секретных значений в журналы. Если токен оказался в открытом файле или сообщении, недостаточно удалить публикацию: его следует отозвать в BotFather, выпустить новый и заменить во всех средах, где работает бот.

Что проверить перед публикацией ссылки

  • Из профиля и первого сообщения понятно, какую задачу решает бот.
  • /start, справка, отмена и каждая кнопка приводят к ожидаемому действию.
  • Повторное нажатие не создаёт одинаковые заявки или операции.
  • Пустое поле, неверный контакт и неожиданный тип сообщения не останавливают диалог.
  • Состояния разных пользователей не смешиваются.
  • После перезапуска приложения активный сценарий корректно продолжается либо безопасно начинается заново.
  • Подтверждение заявки отправляется только после успешной записи во внешнюю систему.
  • Токен и пользовательские данные не попадают в журналы ошибок и тестовые выгрузки.

Проверку стоит проводить из обычной учётной записи Telegram, проходя не только идеальный маршрут. Прервите диалог на разных шагах, повторите команды, отправьте неподходящие данные и временно отключите внешнюю систему. Так обнаруживаются проблемы с состоянием, повторами и преждевременными подтверждениями.

Как выбрать конструктор

Сравнивайте сервисы по своему сценарию, а не по длине списка функций. До оплаты проверьте ветвления, переменные, передачу оператору, экспорт данных, интеграцию с нужной системой, разграничение доступа и способ замены токена. Отдельно выясните, что произойдёт при превышении лимита и можно ли перенести данные в другой сервис.

Бот готов к запуску не в момент получения токена, а когда пользователь без ручного вмешательства проходит путь от /start до заявленного результата. Для первой версии надёжнее один законченный сценарий с отменой и обработкой ошибок, чем большое меню из частично работающих возможностей.

Читайте также:

Поделиться:

Подпишитесь на рассылку

Получайте свежие новости Web3, AI и криптовалют прямо на вашу почту.

0