Как создать Telegram бота на Python: Пошаговое руководство для начинающих
Создание Telegram бота на Python — это отличная возможность для начинающих разработчиков освоить новые технологии и реализовать интересные проекты. В этом руководстве мы разберем все базовые аспекты разработки Telegram бота, начиная с создания аккаунта через BotFather и заканчивая написанием кода с использованием фреймворка aiogram.
1. Создание аккаунта бота через BotFather
Прежде чем начать разработку, создайте аккаунт бота через официальный бот Telegram — BotFather. Запустите его командой /start
, затем введите команду /newbot
, чтобы создать нового бота. Вам потребуется придумать название и уникальное имя пользователя (username) для вашего бота. После успешного создания вы получите токен для доступа к API Telegram. Этот токен понадобится нам в дальнейшем.
Через BotFather вы также можете редактировать учетную запись вашего бота: изменять название, добавлять описание, настраивать команды меню и многое другое.
2. Выбор библиотеки или фреймворка для написания бота
Для разработки Telegram ботов на Python существуют различные библиотеки и фреймворки, которые значительно упрощают процесс взаимодействия с API Telegram. Рассмотрим два популярных варианта:
- python-telegram-bot — самая популярная библиотека для разработки Telegram чат-ботов на Python. Она предоставляет высокоуровневую обертку над API Telegram и поддерживает как синхронный, так и асинхронный режим работы.
pip install python-telegram-bot
- Aiogram — менее популярный, но мощный фреймворк, ориентированный на асинхронную разработку. Он предлагает множество инструментов и полезных функций, таких как работа с контекстом пользователя через машину состояний и возможность кэширования контекста в Redis. Для серьёзной разработки Telegram ботов рекомендуем изучить именно этот фреймворк.
pip install aiogram
3. Написание кодовой базы для бота
В своей разработке я предпочитаю фреймворк aiogram. На данный момент использую актуальную версию aiogram 3.8.0. Вся кодовая база будет писаться именно для этой версии. Так как фреймворк заточен на асинхронную работу, для профессиональной разработки потребуется изучить принципы асинхронного программирования в Python. Для демонстрации структуры проекта на aiogram, напишем простого эхо-бота, который будет отвечать приветствием на любое сообщение. Начнем с импорта модуля asyncio и необходимых классов из фреймворка:
import asyncio
from aiogram import Bot, Dispatcher
from aiogram.client.default import DefaultBotProperties
from aiogram.enums import ParseMode
from aiogram.types import Message
Далее объявим константу, которая будет ссылаться на ключ API, полученный от BotFather. В производственной среде токен лучше хранить в переменных окружения или базе данных. В нашем демонстрационном варианте мы упростим и укажим токен прямо в коде. Повторяю, так делать нельзя!:
BOT_TOKEN = "7397151986:AAE8eP-YZOGAXFe0qyqcIWnsdgbrgryVy4"
Напишем асинхронный обработчик, который будет реагировать на входящие сообщения и отправлять приветствие в ответ:
@dp.message()
async def echo_handler(message: Message) -> None:
await message.reply("Привет!")
Обратите внимание, в нашей реализации мы используем аннотацию типов, она упрощает работу с кодом и помогает выявлять ошибки, связанные с типами данных. Если вы только начали свой путь составления Python разработчиком, привыкайте сразу к хорошему тону и используйте аннотацию типов в своих проектах.
Теперь напишем главную функцию, которая инициализирует объект бота и запустит процесс опроса API Telegram (называется поллинг) на наличие новых событий:
async def main() -> None:
bot = Bot(token=TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTML))
await dp.start_polling(bot)
Для запуска главной функции используем встроенный модуль asyncio:
if __name__ == "__main__":
asyncio.run(main())
Заключение
Теперь у вас есть базовое понимание того, как создать Telegram бота на Python с использованием фреймворка aiogram. Следуя этому пошаговому руководству, вы сможете создать своего первого бота, а с дальнейшим изучением и практикой — разрабатывать более сложных и функциональных ботов.
По хештегу #aiogram вы cможете найти другие полезные статьи и гайды по этой теме по мере их добавления на сайт.
Дата создания публикации:
Прочтений: 569