Телеграм-боты сейчас используются для решения самых разных задач. С их помощью можно создавать библиотеки с файлами, фотографиями, видео или музыка. Запускать собственных чат-ботов или новостные каналы. Один из популярных программирования языков для создания ботов в Телеграмме – Python. Существуют и другие способы, но этот открывает много возможностей. Однако, разработчику приходится иметь дело с программным кодом, в котором не всегда просто разобраться. Поэтому иногда могут возникать ошибки, например, «’TeleBot’ object has no attribute ‘message_handler’», как её исправить расскажем далее. Также разберём процесс создания Телеграмм-бота на Питоне подробнее, и рассмотрим другие часто возникающие ошибки.
Как создать Телеграмм-бота на Python
Для создания собственного бота в Телеграмме не нужно годами изучать язык программирования: достаточно базового понимания, как они работают. Сейчас существует множество бесплатных библиотек, в которых хранится масса готовых решений. Таким образом, с их помощью вы сможете сделать собственного бота. Главное следовать инструкциям и вовремя выявлять ошибки. Рассмотрим процесс подробнее.
Выбираем библиотеку
Их существуют десятки. Каждая отличается по функциональности, надёжности и активности сообщества. Но мы рассмотрим самые популярные и простые:
- Python-telegram-bot. Эта библиотека была запущена одной из первых. Имеет синхронный подход к работе. Это означает, что при ожидании сообщения пользователя, код останавливается;
- Aiogram. Работает в асинхронном формате, то есть, бот не останавливается, пока ждёт ответа от пользователя. У этой библиотеки активное сообщество, поэтому она активно развивается;
- TeleBot. Можно использовать оба подхода. Используется только для простых ботов.
На сайте каждой библиотеки доступна подробная документация, описывающая её возможности и процесс работы.
Устанавливаем Python и виртуальное окружение
Python изначально установлен на операционные системы Linux и macOS. Но, если вы пользуетесь Windows, придётся поставить его вручную. Для этого перейдите на официальный сайт языка программирования.
Зайдите в раздел «Downloads», выберите подходящую версию, скачайте её и следуйте инструкциям по установки в инсталляторе.
После проверки работоспособности Python нужно установить virtualenv. Это виртуальное пространство, позволяющее разделять проекты между собой. Для создания зайдите в терминал и введите команду, указанную ниже.
После этого введите следующие команды.
Они создадут папку с ботом, в котором будут храниться все касающиеся его файлы.
Создаём бота
Чтобы создать нового Телеграмм-бота, понадобится зайти в мессенджер и найти бота @BotFather. Введите его название в поисковой строке. Нажмите «Запустить» и введите команду /newbot.
Далее останется только ввести имя нового бота. @BotFather выдаст ваш личный токен, который будет использоваться для подключения к API Телеграмма.
Подключаем библиотеки
Для каждой библиотеки принцип установки отличается. Читайте подробное руководство в документации к ней. Например, для подключения «aiogram» нужно использовать менеджер пакетов «pip» и ввести код, указанный ниже.
Пишем бота
Здесь процесс тоже будет отличаться в зависимости от выбранной вами библиотеки. Используя готовые решения, вы без проблем создадите и запустите собственного бота. Остановимся на основных элементах кода, используемых для простых ботов:
- message_handler – декоратор. Он отвечает на входящее сообщение пользователя;
- commands=[‘start’] – команда. Она напрямую связана с декоратором. Содержит в себя функцию, предполагаемую им;
- async def. Определяет тип работы, как асинхронный, принимая сообщения пользователя постоянно, не прекращая работу бота.
Подробнее про создание Телеграмм-бота на Python читайте в документации бесплатных библиотек.
Запуск и проверка
Для этого нужно перейти в терминал и ввести команду запуска бота, заданную при написании кода. После этого понадобится найти его в Телеграмме и нажать на кнопку «Начать». Если вы увидите заданные вами сообщение, функционал и прочее, значит, всё получилось.
Как исправить ошибку ‘TeleBot’ object has no attribute ‘message_handler’
Ошибка ‘TeleBot’ object has no attribute ‘message_handler’ возникает у многих разработчиков ботов, пытающихся запустить готовый код на Python 3.4 и других версиях. При локальном запуске на Windows бот работает корректно, а при попытке запустить в сети – выдаёт ошибку.
Чаще всего проблема возникает из-за не обновлённых модулей или библиотек. Решается достаточно просто: введите команду «apt-get update». Она автоматически проверяет наличие обновлений и устанавливает их. Если не помогло, то нужно попробовать переустановить конкретные модули, введя код, показанный на картинке ниже. После этого попробуйте запустить код, всё должно работать корректно.