Ваш регион: Псков

Как написать бота в Telegram на Python — пошаговое руководство для начинающих

Содержание



Платформа Telegram предоставляет отличный  набор инструментов для создания ботов. Это – специальные программы, действующие внутри мессенджера, выполняющие функции автоматизации общения. Каждому боту присваивается уникальное имя, по которому его легко найти. Эти программки можно использовать в чатах, в каналах для их модерации и администрирования. В этой статье мы подробно, шаг за шагом, разберем процесс создания бота в Telegram на языке программирования Python. Вы узнаете, как его зарегистрировать, настроить окружение и запустить на своем компьютере. Это отличная практика для начинающих. Проект позволяет применить на практике базовые конструкции языка, освоить работу с сетью и библиотекой. К концу этой инструкции у вас будет работающий бот, и вы сможете развивать его дальше, добавляя новые функции. Приступим!

Что потребуется для работы

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

Прежде чем начать писать код, нужно подготовить все необходимые компоненты.

  1. Аккаунт в Телеграм и установленное приложение на компьютере или телефоне. Боты создаются через специальный кабинет — BotFather. Это официальная программа платформы, осуществляющая управление другими ботами.
  2. Python со средой разработки
  • Убедитесь, что на вашем компьютере установлен Python (версия 3.7 или выше). Проверить это можно, открыв командную строку (терминал). Язык для работы можно скачать с официального сайта. Также вам понадобится любой текстовый редактор или среда разработки (например, VS Code, PyCharm или даже простой Блокнот).
  1. Библиотека Телеграм API
    Для работы с API Telegram рекомендуем использовать pyTelegramBotAPI (часто импортируется как telebot). Эта популярная библиотека отличается простотой в освоении и хорошей документацией. Установка производится через менеджер пакетов pip.

Регистрация нового бота

Для выполнения этой операции нужно открыть Telegram и найти BotFather (с синей галочкой верификации). Написать ему команду /start для начала диалога:

  1. Введите команду /newbot — он попросит, чтобы вы придумали название для бота. Это имя будут видеть пользователи (например, «Мой первый бот»).
  2. После этого укажите имя пользователя (username) бота с окончанием на «bot» (например, MyFirstBot_bot). Это уникальный идентификатор, чтобы его можно было найти в поиске.
  3. Если это название не будет занято другим пользователем, BotFather поздравит вас сообщением с токеном, который будет выглядеть как длинная строка из символов. Это — ключ доступа, который необходимо сохранить. Этот токен будет использоваться в коде для авторизации вашего приложения как бота.
  4. Пример токена: 1234567890:ABCdefGHIJklmNOPqrstUVwxyz-1234567

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

Настройка виртуального окружения с установкой библиотек

Для всех проектов рекомендуется создавать изолированное виртуальное окружение. Это поможет избежать конфликтов между версии библиотек в разных проектах.

Как создать и активировать окружение (Windows / macOS / Linux):

  1. Открыть терминал или командную строку в папке вашего будущего проекта.
  2. Выполнить команду:
python -m venv venv

Эта команда создаст папку venv с копией интерпретатора Python.

  1. Активировать окружение:
    • Windows: venv\Scripts\activate
    • macOS / Linux: source venv/bin/activate
  2. После активации в начале строки терминала появится (venv). Теперь все устанавливаемые библиотеки будут ставиться только в это окружение.

Устанавливаем библиотеку:
В активированном окружении выполните команду:

pip install pyTelegramBotAPI

pip скачает и установит библиотеку и все ее зависимости. Проверить, что все прошло успешно, можно, попытавшись ее импортировать в Python.

Пишем код первого бота

Теперь самое интересное — написание кода. Создайте в папке проекта файл, например bot.py, и откройте его в редакторе. Импортируем библиотеку и создаем объект бота. В самом начале файла импортируем необходимые инструменты:

import telebot
from telebot import types  # types понадобится позже для создания кнопок

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

TOKEN = 'ВАШ_ТОКЕН_ЗДЕСЬ'
bot = telebot.TeleBot(TOKEN)

Важно: никогда не публикуйте токен в открытом доступе (например, на GitHub). Для реальных проектов лучше хранить его в переменных окружения.

Первый обработчик команды /start
В основе работы всех ботов используются специальные обработчики (handlers). Их задача —  реагировать на определенные события: ввод команд, текстовых сообщений, нажатие на кнопки и т.д. Предлагаем написать простой вариант обработчика, который будет отвечать на команду /start с помощью декоратора @bot.message_handler():

@bot.message_handler(commands=['start'])
def send_welcome(message):
    bot.reply_to(message, "Привет! Я твой первый бот на Python. Чем могу помочь?")

Создание обработчика для текстовых сообщений
Еще можно добавить простой эхо-ответ на любые текстовые сообщения с помощью обработчика, который будет ловить все тексты (наличие условия func=lambda message: True означает «для любого сообщения»). Но чтобы он не конфликтовал с командой /start, нужно поставить его после обработчика команд или задать более конкретное условие. Пока сделаем просто: если сообщение не является командой, бот его повторит.

@bot.message_handler(func=lambda message: True)
def echo_all(message):
    bot.send_message(message.chat.id, f"Вы написали: {message.text}")

Обратите внимание, мы использовали bot.send_message, где нужно явно указать chat.id получателя.

Запуск бота

Последний шаг — добавить код, запускающий программу и бесконечно опрашивающий серверы Telegram,  есть ли новые сообщения. Внизу файла bot.py добавляем:

if __name__ == '__main__':
    print("Бот запускается...")
    bot.infinity_polling()

bot.infinity_polling() — это метод, который запускает бесконечный цикл получения обновлений. Пока он работает, бот будет отвечать на сообщения.

Теперь сохраните файл и в командной строке (терминале), находясь в папке с файлом и с активированным виртуальным окружением, выполните команду:

python bot.py

Если все манипуляции были выполнены правильно, вы увидите текст: «Бот запускается…». Теперь перейдите в Телеграм, найдите своего бота, используя имя пользователя, и напишите ему команду /start. Он должен ответить!

Что делать дальше и как улучшить бота

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

  • Обработка ошибок: добавьте try…except, чтобы бот не падал при неожиданных ошибках.
  • Inline-кнопки: используйте types.InlineKeyboardMarkup для создания кнопок прямо в сообщениях.
  • Регистрация пользователей: можно сохранять user.id в базу данных (например, SQLite) и делать рассылки.
  • Загрузка файлов: бот может принимать и отправлять фото, видео, документы.
  • Интеграция с API: бот может ходить на другие сайты, получать курсы валют, погоду, новости и отдавать их пользователю.
  • Состояния (FSM): для сложных диалогов (например, регистрация в несколько шагов) используйте библиотеку telebot в связке с машиной состояний.

Решение типичных проблем

  • Бот не даёт ответ: Проверьте, правильный ли токен вы вставили. Убедитесь, что скрипт запущен (в терминале видна надпись «Бот запускается…»). Проверьте, не блокирует ли брандмауэр соединение.
  • Ошибка «ImportError: No module named telebot»: Значит, вы не установили библиотеку или активировали не то виртуальное окружение. Выполните pip install pytelegrambotapi в активном окружении.
  • Бот видит только команды, но не обычный текст: Проверьте порядок обработчиков. Обработчик с func=lambda message: True должен быть последним, так как он ловит всё, и до следующих дело может не дойти.
  • Хочу, чтобы бот работал 24/7: На своем компьютере бот работает только пока он включен и запущен скрипт. Для постоянной работы нужно разместить код на хостинге (например, на Linux-сервере, в облаке или использовать специальные сервисы для хостинга ботов).

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

Использование Python и библиотеки упрощают разработку. Рекомендуем  продолжать работу дальше — добавляя новые функции, экспериментируя с API Telegram, подключая внешние сервисы. Телеграм боты могут быть отличным стартом для обучения программированию и полезным инструментом, который вы будете активно использовать в повседневной жизни. Если у вас остались вопросы или вы столкнулись с ошибками, задавайте их в комментариях ниже. Удачи в разработке!