Как создать Telegram-бота с нуля: руководство для начинающих
Создание Telegram-бота начинается с BotFather и API-токена, а не с выбора фреймворка. Вот путь для новичков — от первого токена до бота, который остаётся онлайн.
Michael ChenВладелец небольшого магазина каждый день получает в Telegram одни и те же три вопроса: сроки доставки, политика возврата, даты поступления товара. Ответы на них вручную съедают час до обеда. Друг советует создать бота для обработки этих вопросов. Владелец никогда не писал ни строчки кода.
Хорошая новость: первая версия Telegram-бота не требует много кода, и ни одна его часть не предполагает прямого взаимодействия с серверами Telegram. Всё маршрутизируется через один официальный инструмент, созданный именно для этого.
Начните с BotFather, а не с фреймворка
Каждый Telegram-бот начинается одинаково — с разговора с @BotFather, собственным ботом Telegram для создания ботов. Откройте с ним чат, отправьте /newbot, выберите отображаемое имя, затем имя пользователя, заканчивающееся на "bot". BotFather сразу же выдаёт API-токен. Этот токен — пароль бота к серверам Telegram, и любой, кто им завладеет, сможет управлять ботом, поэтому относитесь к нему как к учётным данным администратора сайта: не вставляйте в публичные группы и не сохраняйте в публичных репозиториях кода.
На этом этапе у вас технически есть работающий бот. Он пока ничего не делает, потому что нет кода, который бы слушал отправляемые ему сообщения.
Выберите язык до выбора руководства
Большинство руководств для новичков по умолчанию используют Python, так как библиотеки сообщества зрелые, а синтаксис близок к обычному английскому. Node.js подходит тем, кто уже знаком с JavaScript, особенно если боту нужно взаимодействовать с уже работающим веб-приложением. Крупные команды иногда выбирают Java или Go, когда бот должен обрабатывать большой трафик, но это редко бывает отправной точкой для первого проекта.
| Язык | Типичное время настройки (иллюстративно) | Лучше всего подходит для |
|---|---|---|
| Python | 30-60 минут для базового бота-ответчика | Первый бот, быстрые прототипы |
| Node.js / JavaScript | 30-60 минут | Команды, уже использующие JS-бэкенд |
| Java или Go | Полдня или больше для минимальной настройки | Боты с высоким трафиком или корпоративные боты |
Примечание: время настройки сильно варьируется в зависимости от опыта разработчика; приведённые выше цифры являются иллюстративными оценками, а не измеренными показателями.
Что должна делать первая версия
Сдерживайте желание реализовать все функции до тестирования. Рабочая первая версия обычно охватывает три действия: ответ на команду /start с приветствием, ответ на несколько фиксированных ключевых слов и пересылка всего, что не распознано, человеку. Последняя часть важнее, чем кажется. Боты, которые молчат в ответ на неожиданный ввод, раздражают пользователей гораздо больше, чем боты с меньшим набором функций.
- Отвечать на
/startи/helpкратким меню возможностей бота. - Распознавать небольшой набор ключевых слов, связанных с вашими реальными повторяющимися вопросами, а не с предположительным списком.
- В случае отсутствия совпадений выдавать сообщение "с вами свяжется человек" вместо молчания.
Как только этот цикл заработает надёжно, добавление запланированных публикаций, команд управления группой или запросов к базе данных станет небольшим шагом, а не перестройкой.
Где должен жить бот
Код, работающий на вашем ноутбуке, перестаёт отвечать, как только вы закрываете крышку. Бот, предназначенный для непрерывной работы, требует хостинга, который остаётся включённым: небольшой VPS, платформа контейнеров или бессерверная функция, активируемая при входящих сообщениях. Ни один из этих вариантов не должен быть дорогим для бота с низким трафиком.
| Вариант хостинга | Ежемесячная стоимость (ориентир) | Лучше всего подходит для |
|---|---|---|
| Бессерверная функция на бесплатном тарифе | $0 при низком трафике | Простые боты-ответчики, тестирование |
| Небольшой VPS | $4-$10 | Боты, которым также нужно выполнять другие фоновые задачи |
| Управляемая контейнерная платформа | $5-$20 | Команды, желающие меньше обслуживать сервер |
Примечание: цены являются приблизительными, иллюстративными диапазонами, которые меняются в зависимости от провайдера и региона, а не фиксированными котировками.
Если ваш бот должен выглядеть так, будто он находится в определённой стране — для регионального тестирования или потому что ваша аудитория географически сконцентрирована, — резиденциальное подключение через маркетплейс прокси — один из вариантов, который люди используют вместе с настройкой хостинга, отдельно от кода бота. Какой бы хост вы ни выбрали, официальная документация Telegram Bot API — это справочник, который стоит добавить в закладки, когда вы выйдете за рамки начальных команд.
Краткий контрольный список перед запуском
Выполнение этих шагов перед публичным объявлением о боте позволяет избежать большинства ранних проблем с поддержкой.
- Храните API-токен в переменной окружения, никогда не в коде, которым вы можете поделиться или который можете сохранить в репозитории.
- Протестируйте
/start, три основных ответа по ключевым словам и резервное сообщение со второго аккаунта. - Убедитесь, что бот остаётся онлайн после закрытия ноутбука, проверив его с другого устройства через час.
- Установите описание бота и фото профиля через BotFather, чтобы он выглядел целенаправленно, а не заброшенным на полпути.
- Запишите, кто получает уведомление при срабатывании резервного сообщения, чтобы неотвеченные вопросы не исчезали в пустоте.
Многие поставщики на маркетплейсах также продают верифицированные административные аккаунты или номера, подтверждённые через SMS, для тестирования ботов в разделах Telegram-аккаунты или SMS-верификация, что полезно, если вы не хотите привязывать личный номер к боту, который ещё тестируете. Сравните несколько предложений по цене и скорости доставки перед покупкой — так же, как вы сравниваете хостинг-провайдеров.
