Создаваемый Whatsapp бот на Python отличается реагированием на определенные команды, которые поступают в форме стандартных сообщений с последующим автоматическим ответом. Широкие функциональные возможности позволяют существенно упростить работы в мессенджере. Чтобы гарантировать стабильную работу, важно обеспечить непрерывный доступ к интернету и смартфона и он не должен применяться в отношении Whatsapp Web.
Подготовка к написанию бота
Изначально требуется связать Ватсап с имеющимся скриптом, чтобы во время написания кода поверить работу. Последовательность действий включает в себя:
- Переход в личный кабинет разработчика на сервере.
- Выполняется сканирование QR-кода.
- Далее запускается WhatsApp на переносном устройстве.
- Осуществляется переход в раздел внесения настроек.
- Выбирается WhatsApp Web и повторно сканируется QR-код.
Чтобы сервер автоматически начал вызывать скрипт во время новых мессенджеров, требуется указывать WebHook URL.
Обратите внимание, WebHook URL – ссылка, по которой в дальнейшем будет отправлена полученная информация об оповещениях и сообщениях. Следовательно, пользователям понадобиться сервер для принятия сведений, в противном случае бесперебойная работа бота не гарантируется. Специалисты рекомендуют микрофраемворк Flask, с помощью которого гарантируется максимальный комфорт.
Инициализация класса бота
Процедура требует создания файла «wabot.py», после чего осуществляется описание класса для разрабатываемого бота. Программист не должен забывать импортировать сведения библиотеки.
Обратите внимание, библиотека json предусматривает обработку одноименного формата. Используется с целью обращения к АРI сайта. В нем выполняется описание класса конструктора, который возьмет на себя прием json с исчерпывающей информацией о входящих мессенджах. Чтобы понимать, какой вид будет у принимающего json , необходимо:
- Перейти в раздел проведения тестирований.
- Инициировать анализ сформированных запросов.
- Протестировать Webhook.
Дополнительно требуется присвоить атрибут класса параметров. При этом Dict_messages — словарь, включающий в себя сведения из уведомлений в формате json. Чтобы изучить структуру, требуется выполнить переход в категорию «Проверка WebHook». В дальнейшем выполняется запуск тестирования и отправляется сообщение с любым содержанием в мобильное приложение. На дисплее автоматически отображается оповещение.
Разработка функционала бота на Python
Разработка функционала для чат бот Whatsapp несложная. При этом нужно знать особенности и соблюдать четкую последовательность действий.
Отправка запросов
С целью эффективного функционирования, формирование запросов к API является неотъемлемой частью. При создании опции, требуется пользоваться значениями:
- send_requests – выполняет прием нескольких значений: method и data;
- method позволяет узнать, какой именно вариант ChatAPI обязателен к вызову;
- data отображает необходимую информацию для отправки.
Обратите внимание, 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. НЕ стоит забывать возвращать ответ сервера.
Во время создания скрипта рекомендуется проявлять максимальную ответственность, иначе возрастают риски возникновения ошибок.
Приветствие
Использование функции предусматривает использование команды «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
Обратите внимание, внесение изменений не требуется.
Функция 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.Обратите внимание, при отсутствии проверки есть вероятность выхода не бесконечность с вытекающими негативными последствиями.
- В результате разработчик автоматически получает ссылку на расположение сообщества и непосредственной библиотеки данных. Чтобы избежать ошибочных проверок, достаточно использовать функцию сравнения данных. Обратите внимание, по завершении процедуры проверки, достаточно инициировать вызов опции, которая ранее была рассмотрена с функцией ввода адреса местоположения группы.
Сразу после этого пользователи могут приступать к тестированию скрипта с последующим подключением к персональному зарегистрированному аккаунту в приложении Ватсап.