
Оглавление
Telegram-боты стали популярным инструментом для автоматизации задач, взаимодействия с пользователями и интеграции различных сервисов. Они широко применяются в бизнесе, образовательных проектах, службах поддержки и многих других сферах. Благодаря простоте API и удобным библиотекам на Python, создать собственного бота может даже новичок в программировании.
В этой статье мы подробно рассмотрим процесс создания Telegram-бота, начиная с регистрации в @BotFather , выбора библиотеки и написания кода, заканчивая тестированием и развертыванием.
Библиотеки для создания бота
Для разработки бота на Python существует несколько библиотек, каждая из которых имеет свои особенности и преимущества. Рассмотрим наиболее популярные варианты.
1. Aiogram
Aiogram – это асинхронная библиотека, использующая asyncio , что делает ее одной из самых быстрых и эффективных для работы с Telegram API. Она поддерживает все функции ботов, включая обработку сообщений, inline-кнопки и работу с вебхуками.
Плюсы Aiogram :
- Высокая скорость работы благодаря asyncio .
- Простая структура кода.
- Хорошая документация.
2. python-telegram-bot
python-telegram-bot – одна из самых старых и популярных библиотек для создания ботов на Python. Она синхронная, но предлагает большой функционал и удобный интерфейс.
Плюсы python-telegram-bot:
- Поддержка как синхронного, так и асинхронного режима.
- Простота использования.
- Широкая документация и большое сообщество.
3. Telethon
Telethon – это библиотека для работы с Telegram API, ориентированная на создание клиентов (например, для автоматизированного взаимодействия с Telegram). Подходит не только для ботов, но и для написания пользовательских Telegram-клиентов.
Плюсы Telethon:
- Гибкость в настройке.
- Возможность работы с аккаунтами Telegram, а не только с ботами.
- Поддержка асинхронного программирования.
В данной статье мы будем использовать Aiogram , так как эта библиотека современная, удобная и позволяет писать эффективные Telegram-боты.
Основные шаги создания бота в Telegram на Python – пошагово
1. Регистрация бота в Telegram
Перед тем как начать писать код, необходимо зарегистрировать бота в Telegram через @BotFather.
1. Открываем Telegram и находим бота @BotFather .
2. Отправляем команду /newbot .
3. Указываем имя бота (например,MyFirstBot).
4. Придумываем уникальное имя пользователя (например,my_first_bot).
5. Получаем API-токен, который понадобится для взаимодействия с Telegram API.
Токен представляет собой строку, например:
1234567890:ABCDEFghIJKLmnopQRSTUVwxYZ
Сохраните этот токен, так как он потребуется для работы с ботом.
2. Установка необходимых библиотек
Установим Aiogram , используя pip:
bash
pip install aiogram
3. Создание бота
Создадим файл bot.py и напишем базовый код:
python
import asyncio
import logging
from aiogram import Bot, Dispatcher, types
API_TOKEN = "ВАШ_ТОКЕН"
Включаем логирование
logging.basicConfig(level=logging.INFO)
Создаем экземпляры бота и диспетчера
bot = Bot(token=API_TOKEN)
dp = Dispatcher()
Обработчик команды /start
@dp.message(commands=["start"])
async def start_command(message: types.Message):
await message.answer("Привет! Я ваш Telegram-бот.")
Запуск бота
async def main():
await dp.start_polling(bot)
if __name__ == "__main__":
asyncio.run(main())
Этот код создает простого Telegram-бота, который отвечает на команду /start .
4. Обработка сообщений
Добавим обработку текстовых сообщений, чтобы бот мог отвечать на любое сообщение пользователя:
python
@dp.message()
async def echo_message(message: types.Message):
await message.answer(f"Вы сказали: {message.text}")
Теперь бот будет повторять любое сообщение пользователя.
5. Добавление кнопок
Для удобства взаимодействия с ботом можно использовать кнопки. Добавим ReplyKeyboardMarkup:
python
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
@dp.message(commands=["menu"])
async def show_menu(message: types.Message):
keyboard = ReplyKeyboardMarkup(keyboard=[
[KeyboardButton(text="Кнопка 1"), KeyboardButton(text="Кнопка 2")]
], resize_keyboard=True)
await message.answer("Выберите опцию:", reply_markup=keyboard)
Теперь бот сможет отправлять пользователю кнопки с вариантами выбора.
6. Обработка команд
Добавим поддержку нескольких команд:
python
@dp.message(commands=["help"])
async def help_command(message: types.Message):
await message.answer("Доступные команды:\n/start - Начало работы\n/help - Список команд\n/menu - Меню")
Запуск и тестирование бота
1. Запуск бота
Чтобы запустить бота, выполните команду:
bash
python bot.py
2. Тестирование в Telegram
1. Откройте Telegram.
2. Найдите своего бота по юзернейму.
3. Отправьте команду /start – бот должен ответить приветствием.
4. Попробуйте отправить сообщение – бот должен его повторить.
5. Введите /menu , чтобы проверить кнопки.
Развертывание бота на сервере
Если бот должен работать постоянно, его можно развернуть на сервере. Самый простой способ – использовать pm2 (если у вас Linux-сервер):
bash
npm install pm2 -g
pm2 start bot.py --interpreter python3
pm2 save
pm2 startup
Также можно использовать облачные платформы, такие как:
- Heroku
- AWS Lambda
- DigitalOcean
Заключение
Создание Telegram-бота на Python – это несложный процесс, если использовать удобные библиотеки, такие как Aiogram . В данной статье мы рассмотрели основные этапы разработки бота:
- Регистрация через @BotFather .
- Установка необходимых библиотек.
- Написание кода бота.
- Добавление команд и кнопок.
- Запуск и тестирование.
Этот базовый бот можно расширять, добавляя сложные функции, интеграцию с базами данных и внешними сервисами. Telegram-боты – это мощный инструмент, который может помочь автоматизировать множество процессов.

Автор текста
Дмитрий Лукьянов, backend-разработчик