Перейти к содержимому
PD
Telegram-боты

Создание Telegram-бота на Python с нуля

Что нужно для старта, как выглядит минимальный бот, какие первые команды стоит сделать, как его запустить и что добавлять дальше по порядку.

Все статьи гида Telegram-боты · 13

Первый бот собирается за вечер. Разберём минимально необходимое и порядок, в котором стоит наращивать.

Что нужно

  • Python достаточно свежей версии.
  • Токен от BotFather - см. получение токена.
  • Библиотека. Для Python это обычно aiogram.
  • Виртуальное окружение. Не обязательно, но избавляет от конфликтов зависимостей позже.

Сервер на этом этапе не нужен: бот сам обращается к серверам Telegram, входящие соединения ему не требуются.

Минимальный бот

Структура минимального бота одинакова у всех библиотек:

  1. Прочитать токен из переменной окружения.
  2. Создать объект бота и диспетчер.
  3. Описать обработчик - функцию, которая срабатывает на событие и отвечает.
  4. Подключить обработчик к диспетчеру.
  5. Запустить получение обновлений.

Всё это укладывается в несколько десятков строк. Что важно сделать правильно с самого начала:

Токен из окружения, а не из кода. Привычка, которая потом сэкономит перевыпуск токена.

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

Асинхронность. Современные библиотеки асинхронные, и синхронный вызов внутри обработчика подвесит весь бот. Об этом легко забыть на первом боте и потом долго искать причину.

Первые команды

Минимальный полезный набор:

  • Старт. Приветствие и объяснение, что бот умеет. Одно предложение лучше пустого ответа.
  • Помощь. Что делать, если непонятно.
  • Отмена. Выход из любого сценария. Понадобится сразу, как появятся вопросы подряд.

Команды стоит зарегистрировать у BotFather: они появятся в меню, и пользователи перестанут спрашивать, что бот умеет.

Запуск

При разработке бот запускается на вашей машине в режиме опроса: он сам спрашивает у Telegram новые сообщения. Ничего настраивать не нужно.

Частая проблема: два запущенных экземпляра с одним токеном. Сообщения достаются то одному, то другому, и поведение выглядит случайным. Если бот отвечает через раз - проверьте, не запущен ли он ещё где-то, включая забытый терминал.

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

Что добавлять дальше

Порядок, который не приводит к переписыванию:

  1. Кнопки вместо ввода текста. Резко упрощает жизнь пользователю.
  2. Разделение на файлы, как только обработчиков становится больше десятка - см. структуру на aiogram.
  3. База данных. Как только появляется что-то, что нужно помнить между сообщениями.
  4. Состояния диалога. Когда появляются вопросы подряд.
  5. Обработка ошибок и логи. До того, как показывать пользователям.
  6. Платежи, если бот продаёт.

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

Обзор - гид по Telegram-ботам.

Вопросы и ответы

Что нужно, чтобы сделать своего Telegram-бота?

Установленный Python, токен от BotFather и библиотека для работы с ботами. Минимальный работающий бот - это несколько десятков строк. Всё остальное - база, состояния, платежи - добавляется потом, когда становится нужно.

Почему бот запускается, но не отвечает?

Три причины по частоте: не тот токен, обработчик не подключён к диспетчеру, и бот запущен где-то ещё - два процесса с одним токеном конфликтуют, и сообщения достаются то одному, то другому. Последнее особенно коварно при отладке.

Нужен ли сервер, чтобы попробовать?

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

Ещё по теме

Сделаю под ключ

Сделаю Telegram-бота под ваш процесс

Заявки, оплата, выдача доступа, рассылки и воронка в одном боте, с админкой для вас.

от 300 $ · 3-7 дней

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

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

viktorTR · Kwork