Создаваемый Whatsapp бот на Python отличается реагированием на определенные команды, которые поступают в форме стандартных сообщений с последующим автоматическим ответом. Широкие функциональные возможности позволяют существенно упростить работы в мессенджере. Чтобы гарантировать стабильную работу, важно обеспечить непрерывный доступ к интернету и смартфона и он не должен применяться в отношении Whatsapp Web.
![Как сделать чат-бота для Ватсапа на Питоне](https://whatsapp-wiki.ru/wp-content/uploads/2020/12/whatsapp-bot-na-python.jpg)
Подготовка к написанию бота
Изначально требуется связать Ватсап с имеющимся скриптом, чтобы во время написания кода поверить работу. Последовательность действий включает в себя:
- Переход в личный кабинет разработчика на сервере.
- Выполняется сканирование QR-кода.
- Далее запускается WhatsApp на переносном устройстве.
- Осуществляется переход в раздел внесения настроек.
- Выбирается WhatsApp Web и повторно сканируется QR-код.
Чтобы сервер автоматически начал вызывать скрипт во время новых мессенджеров, требуется указывать WebHook URL.
Обратите внимание, WebHook URL – ссылка, по которой в дальнейшем будет отправлена полученная информация об оповещениях и сообщениях. Следовательно, пользователям понадобиться сервер для принятия сведений, в противном случае бесперебойная работа бота не гарантируется. Специалисты рекомендуют микрофраемворк Flask, с помощью которого гарантируется максимальный комфорт.
Инициализация класса бота
Процедура требует создания файла «wabot.py», после чего осуществляется описание класса для разрабатываемого бота. Программист не должен забывать импортировать сведения библиотеки.
![Как сделать чат-бота для Ватсапа на Питоне](https://whatsapp-wiki.ru/wp-content/uploads/2020/12/whatsapp-bot-na-python1.jpg)
Обратите внимание, библиотека json предусматривает обработку одноименного формата. Используется с целью обращения к АРI сайта. В нем выполняется описание класса конструктора, который возьмет на себя прием json с исчерпывающей информацией о входящих мессенджах. Чтобы понимать, какой вид будет у принимающего json , необходимо:
- Перейти в раздел проведения тестирований.
- Инициировать анализ сформированных запросов.
- Протестировать Webhook.
Дополнительно требуется присвоить атрибут класса параметров. При этом Dict_messages — словарь, включающий в себя сведения из уведомлений в формате json. Чтобы изучить структуру, требуется выполнить переход в категорию «Проверка WebHook». В дальнейшем выполняется запуск тестирования и отправляется сообщение с любым содержанием в мобильное приложение. На дисплее автоматически отображается оповещение.
Разработка функционала бота на Python
Разработка функционала для чат бот Whatsapp несложная. При этом нужно знать особенности и соблюдать четкую последовательность действий.
Отправка запросов
С целью эффективного функционирования, формирование запросов к API является неотъемлемой частью. При создании опции, требуется пользоваться значениями:
- send_requests – выполняет прием нескольких значений: method и data;
- method позволяет узнать, какой именно вариант ChatAPI обязателен к вызову;
- data отображает необходимую информацию для отправки.
![Как сделать чат-бота для Ватсапа на Питоне](https://whatsapp-wiki.ru/wp-content/uploads/2020/12/whatsapp-bot-na-python2.jpg)
Обратите внимание, data является словарем, из которого осуществляется формирование json с последующей передачей с помощью Post на сервер. На рассматриваемом этапе требуется соблюдение следующей последовательности действий:
- Создание строки запроса к API.
- После этого указывается header Contet-Type.
- Осуществляется замена Application/Json. Это обусловлено тем, что бот регулярно выполняет передачу персональной информации с соответствующим форматом.
- Далее осуществляется формирование полноценного запроса, используя для этого requests.post.
- Выполняется передача requests.post на используемый сервер api.
Обратите внимание, возвращение опции ответа от сервера в сформированном формате json.
Отправка сообщений
Для создания опции отправки мессенджера, требуется использовать несколько параметров:
- send_message – инициирует принятие нескольких значений;
- chatId – Id чата, в котором в дальнейшем возникает необходимость отправлять мессенджеры;
- text – содержание уведомления.
Дальнейшая последовательность действий включает в себя:
- Создание словаря data, включающее в себя chatid с целью принятия текстовых уведомлений.
- На следующем этапе предстоит перенести информацию в разработанный скрипт, который был разработан ранее.
- На завершающем этапе, чтобы инициировать отправку оповещений в Chat Api, следует применять вариант sendMessage. По этой причине требуется передавать в опции в качестве значения data. НЕ стоит забывать возвращать ответ сервера.
Во время создания скрипта рекомендуется проявлять максимальную ответственность, иначе возрастают риски возникновения ошибок.
![Как сделать чат-бота для Ватсапа на Питоне](https://whatsapp-wiki.ru/wp-content/uploads/2020/12/whatsapp-bot-na-python3.jpg)
Приветствие
Использование функции предусматривает использование команды «hi» бота с последующим вводом несуществующего запроса, в частности:
- chatId – Id чата, куда планируется отправлять уведомление;
- noWelcome – переменная Булева, с помощью которой можно четко определить дальнейшее содержание месседжа в чат.
В завершении предстоит создать строку с уведомлением, отталкиваясь от переменной с последующей передачей опции send_message в качестве содержания месседжа.
Вывод chatId
Чтобы активировать опцию, требуется указать def show_chat_id. Для возврата вводится return self.send_message.
Вывод времени
Рассматриваемая функция создается по четкой последовательности действий, в частности:
def time(self, chatId):
t = datetime.datetime.now()
time = t.strftime
return self.send_message
Обратите внимание, внесение изменений не требуется.
![Как сделать чат-бота для Ватсапа на Питоне](https://whatsapp-wiki.ru/wp-content/uploads/2020/12/whatsapp-bot-na-python4.jpg)
Функция me
Особенностью считается вывод сведений от имени конкретного пользователя по сформированной команде. Активируется следующим образом:
def me(self, chatId, name):
return self.send_message(chatId, name)
Команда стандартная, изменению не подлежит.
Функция file
Особенностью опция является отправка файла в утвержденном формате непосредственно в диалог:
- chatId – Id чата, в который требуется отправить текстовое уведомление;
- format – формат, по которому планируется отправлять уведомления. Обратите внимание, передаваемые данные находятся на хранении на сервере.
В результате формируется словарь, который включает в себя все необходимые ключи в требуемом формате. Дальнейшая последовательность подразумевает поверки на предмет наличия определенного формата, в котором была передана информация собеседником. В случае его наличия формируется заявка на передачу данных:
- chatId – Id чата, в который выполняется передача информации;
- Body – используемый канал передачи оповещения;
- Filename – имя формата;
- Caption – содержание передаваемого уведомления.
Наличие ошибки в команде, влечет невозможность активации функции.
Функция ptt
Формирование голосового уведомления с последующей передачей интересующему собеседнику, осуществляется следующим образом:
- Указание диалога, в котором требуется передать информацию.
- Ввод ссылки на размещенный аудиоформат.
- Формирование запроса к api. При этом используется вариант команды sendAudio.
При желании можно выполнить тестирование.
Функция geo
Отправка данных пользователем с помощью разработанного скрипта выполняется по сформированной команде. Инструкция включает в себя:
- Ввод интересующего диалога, в котором отправляется месседж.
- Ввод указанных координат.
- Отображение персонального адреса по умолчанию.
По завершении формирования словаря, достаточно инициировать запрос к API, используя при этом определенный способ sendLocation.
Функция group
Предусматривает формирование сообщества с личным присутствием и бота. Команда отображает сведения о том, кто именно инициировал отправку месседжа. Рассматриваемое тело отображается информацию относительно номера мобильного телефона пользователя, только с дополнительным содержанием символов. Во время формирования команды, используются следующие сведения:
- наименование конференции по завершении формирования;
- номера мобильных телефонов активных участников. Допускается передача сформированного массива;
- содержание уведомления, которое планируется отправить первым в сообщество.
Для составления и активации запроса, используется одноименная команда функции.
Обработка запросов пользователей
Имеющиеся функциональные возможности разрабатываемого бота были описаны выше. НА завершающем этапе пользователям предстоит обеспечить безошибочную и одновременно стабильную работу интеллекта. Благодаря комплексному подходу появляется шанс организовать четкое взаимодействие с потенциальными клиентами/потребителями. Поэтому требуется активировать дополнительную опцию.
Обратите внимание, функция активируется регулярно при необходимости получить исчерпывающую информацию в webhook. Последовательность действий подразумевает:
- Разработчику требуется вернуться к раннее сформированной команде, включающей в себя словари оповещений, которые были получены в результате общения с собеседниками. Выполнение проверки предоставляет возможность отсеивать сведения, которые не были указаны в уведомлениях. Это обусловлено тем, что в скрипте есть возможность получения запроса от пользователей без месседжей.
- На практике пользователь может получить несколько уведомлений в одном сформированном запросе, поэтому скрипт должен уметь их отличать. Поэтому требуется инициировать перебор словарей, в составе которых может находиться dict_messages.
- После непосредственного вхождения в активированный цикл, требуется объявить переменную «текст». Под ней скрывается исчерпывающий перечень слот, который могут входить в уведомление. Поэтому требуется повторно инициировать обращение к библиотеке, чтобы в полной мере изучить содержание оповещения.
- На следующем этапе выполняется проверка на предмет получения от реальных пользователей, а не спама. Поэтому возникает необходимость воспользоваться функциями false и true.Обратите внимание, при отсутствии проверки есть вероятность выхода не бесконечность с вытекающими негативными последствиями.
- В результате разработчик автоматически получает ссылку на расположение сообщества и непосредственной библиотеки данных. Чтобы избежать ошибочных проверок, достаточно использовать функцию сравнения данных. Обратите внимание, по завершении процедуры проверки, достаточно инициировать вызов опции, которая ранее была рассмотрена с функцией ввода адреса местоположения группы.
Сразу после этого пользователи могут приступать к тестированию скрипта с последующим подключением к персональному зарегистрированному аккаунту в приложении Ватсап.