Артем Демиденко

Telegram Bot. Создаем бота с нуля. С примерами и подробным разбором кода


Скачать книгу

Мы будем использовать язык Python, так как он обладает выразительным синтаксисом и большим количеством библиотек для работы с Telegram API. Начнем с установки необходимых пакетов – для работы с ботами обычно используют библиотеку -telegram-bot. Убедитесь, что у вас установлена последняя версия Python и выполните команду:

      pip install -telegram-bot

      После установки библиотеки мы можем приступить к написанию кода. Начнем с создания нового файла, например, my_bot.py, в который мы будем вносить изменяемый код. Наша первая задача – импортировать необходимые модули и задать токен, полученный от BotFather. Пример кода будет выглядеть следующим образом:

      from telegram import Update

      from telegram.ext import Updater, CommandHandler, CallbackContext

      TOKEN = 'Ваш_токен_здесь'

      Следующим шагом будет создание функции, которая будет обрабатывать команды от пользователей. В нашем случае мы создадим простую команду /start, которая будет приветствовать пользователя. Этот аспект важно понимать, потому что команда – это основной способ взаимодействия пользователей с ботом. Вот как она может выглядеть:

      def start(update: Update, context: CallbackContext):

      ....update.message.reply_text('Добро пожаловать в мой бота!')

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

      updater = Updater(TOKEN)

      updater.dispatcher.add_handler(CommandHandler('start', start))

      После этого, чтобы бот начал функционировать, нужно запустить его, добавив в конце кода следующую строку:

      updater.start_polling()

      Теперь, если вы выполните файл my_bot.py, Ваш бот будет готов к взаимодействию! Используя команду /start, пользователи смогут получать приветственное сообщение. Однако важно помнить, что это всего лишь первый шаг на пути к более сложным взаимодействиям.

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

      def echo(update: Update, context: CallbackContext):

      ....update.message.reply_text(update.message.text)

      Теперь нам нужно добавить ещё один обработчик, который будет использовать эту функцию. Мы можем это сделать, добавив следующий код перед запуском бота:

      updater.dispatcher.add_handler(MessageHandler(filters.text & ~filters.command, echo))

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

      Если вы хотите сделать вашего бота ещё более интересным, вы можете добавить дополнительные команды и функции. Например, можно создать команду, которая будет предоставлять пользователям полезную информацию, такую как погода, новости или даже шутки. Чуть позже в книге мы будем рассматривать