Найти в Дзене

Как сделать чат бота на Python для Telegram

ВВЕДЕНИЕ: Третья часть нашей серии статей о чат-ботах  содержит пошаговое руководство по созданию бота для Telegram на Python . Бот должен уметь отображать обменные курсы, показывать разницу между прошлым и текущим обменными курсами, а также использовать современные встроенные инструменты. Теперь давайте перейдем к сути и узнаем, как создать бота для Python Telegram . Шаг №0: Немного теории Telegram Bot API Вот простой вопрос, чтобы начать наше руководство: как вы разрабатываете чат-ботов Telegram? Ответ очень прост: вы используете HTTP API как для чтения сообщений, отправленных пользователями, так и для обратной передачи сообщений. Это требует использования URL-адреса, который выглядит так: https://api.telegram.org/bot/METHOD_NAME Токен - это уникальная строка символов, необходимая для аутентификации бота в системе. Он генерируется при создании бота и выглядит так: 123456: ABC-DEF1234ghIkl-zyx57W2v1u123ew11 METHOD_NAME (и это очевидно из его названия) - это метод, напри
Оглавление
bot-shop.pp.ua
bot-shop.pp.ua

ВВЕДЕНИЕ:

Третья часть нашей серии статей о чат-ботах  содержит пошаговое руководство по созданию бота для Telegram на Python . Бот должен уметь отображать обменные курсы, показывать разницу между прошлым и текущим обменными курсами, а также использовать современные встроенные инструменты.

Теперь давайте перейдем к сути и узнаем, как создать бота для Python Telegram .

Шаг №0: Немного теории Telegram Bot API

Вот простой вопрос, чтобы начать наше руководство: как вы разрабатываете чат-ботов Telegram?

Ответ очень прост: вы используете HTTP API как для чтения сообщений, отправленных пользователями, так и для обратной передачи сообщений. Это требует использования URL-адреса, который выглядит так:

https://api.telegram.org/bot/METHOD_NAME

Токен - это уникальная строка символов, необходимая для аутентификации бота в системе. Он генерируется при создании бота и выглядит так:

123456: ABC-DEF1234ghIkl-zyx57W2v1u123ew11

METHOD_NAME (и это очевидно из его названия) - это метод, например, getUpdates , sendMessage , getChat и т. Д.

Для выполнения запросов вы можете использовать запросы GET и POST. Многие методы требуют дополнительных параметров (например, при использовании метода sendMessage необходимо указать chat_id и text). Параметры могут быть переданы в виде строки запроса URL, application / x-www-form-urlencoded и application-json (за исключением загрузки файлов).

Еще одно требование - кодировка UTF-8.

После отправки запроса API вы получите ответ в формате JSON. Например, если мы получим данные с помощью метода getMe , мы получим что-то вроде этого:

GET https://api.telegram.org/bot<token>/getMe

{ ok: true, result: { id: 231757398, first_name: "Exchange Rate Bot", username: "exchangetestbot" } }

Если «ok» истинно, запрос был успешным, и результат будет отображаться в поле «результат». Если "ok" ложно,  вы увидите сообщение об ошибке в поле "description".

Вы можете найти список всех типов данных и методов Telegram Bot API здесь.

Следующий вопрос: как получать сообщения пользователей?

Есть два способа сделать это.

Вы можете вручную делать запросы с помощью метода getUpdates . В ответ вы получите массив объектов Update . Этот метод действует как технология длительного опроса (вы делаете запрос, обрабатываете данные, а затем начинаете заново). Чтобы избежать повторной обработки одних и тех же данных, рекомендуется использовать параметр смещения .

Второй способ - использовать веб-перехватчики. Вы должны использовать метод setWebhook только один раз. После этого Telegram отправит все обновления по указанному URL-адресу, как только они появятся.

Единственное ограничение - вам нужен HTTPS (однако разрешены и самозаверяющие сертификаты).

Но как выбрать оптимальный способ получения сообщений?

Метод getUpdates лучше всего подходит, если:

  • Вы не хотите или не можете настраивать HTTPS во время разработки.
  • Вы используете работу с языками сценариев, которые сложно интегрировать в веб-сервер.
  • Ваш бот очень загружен.
  • Вы время от времени меняете сервер бота.

Метод веб-перехватчика - лучший выбор, если:

  • Вы пишете код на веб-языке (например, PHP).
  • Ваш бот мало загружен, и нет смысла регулярно запрашивать обновления вручную.
  • Ваш бот постоянно интегрирован в веб-сервер.

В этом руководстве я буду использовать метод getUpdates.

Теперь, как сделать программу-бот?

@BotFather используется для создания ботов Telegram. Также возможна базовая конфигурация (описание, фото профиля, встроенная поддержка и т. Д.).

Существует множество библиотек, которые могут упростить работу с Telegram Bot API. Назвать несколько:

По своей сути все эти библиотеки являются оболочками HTTP-запросов. Многие из них написаны с использованием ООП и отражают все типы данных Telegram Bot API в классах.

В этом руководстве по боту Telegram я собираюсь создать чат-бота Python с помощью библиотеки pyTelegramBotApi .

ПРОДОЛЖЕНИЕ В СЛЕДУЮЩЕЙ СТАТЬЕ -------->

НАШ СЕРВИС ПО ПРОДАЖЕ АВТОМАТИЗИРОВАННЫХ БОТОВ МАГАЗИНОВ ТЕЛЕГРАММ: HTTPS://BOT-SHOP.PP.UA