Перейти к содержанию

Как создать WhatsApp эхо-бота с помощью Green-API в Make#

В сервисе Make платформа Green-API имеет свое приложение (альтернативная ссылка на приложение), с его помощью Вы сможете отправлять сообщения в WhatsApp.

Что делать, если возникает ошибка при установке?

Если при установке приложения по указанным ссылкам в Make возникает ошибка, рекомендуем указать в ссылке поддомен, в котором производилась авторизация на сайте.
От поддомена зависит доступность сайта по ссылке.
Примеры доступных доменов: eu1, eu2, us1, us2.

EU1

В этом руководстве мы рассмотрим процесс создания эхо-бота для WhatsApp, который будет автоматически отвечать на полученные сообщения. Реализация бота осуществляется с использованием приложения Green-API для платформы Make.

Порядок создания эхо-бота:

  1. Настройка интеграции

  2. Получение сообщения

  3. Отправка сообщения

  4. Запуск и проверка бота

1. Настройка интеграции#

Прежде чем начать разработку бота, необходимо авторизоваться в сервисе Make и подключить приложение от Green-API. Для этого перейдите по ссылке для установки приложения, указанной выше, и нажмите кнопку "Install" на открывшейся странице. После этого выберите организацию, для которой вы хотите установить приложение.

Scenario (сценарий) - автоматизированный процесс, создаваемый в Make. Каждый сценарии состоит из триггера и действия. При срабатывании триггера в одном из приложений Make автоматически выполняет действие в другом. Создать сценарий можно из раздела бокового меню "Scenarios", нажав на кнопку "Create a new scenario".

Изображение с переходом на вкладку

Изображение с созданием сценария

После этого появится рабочее пространство сценария, в котором можно производить дальнейшую настройку.

2. Получение сообщения#

Чтобы начать использовать приложение в Make, необходимо получить данные инстанса. Информацию о том, как создать инстанс и получить его данные, можно найти по ссылке.

Также требуется авторизовать инстанс. Это действие устанавливает связь между аккаунтом WhatsApp на вашем телефоне с инстансом, позволяя отправлять и получать сообщения. Подробная инструкция по авторизации инстанса представлена в статье "Быстрый старт" в нашей документации.

Запуск сценария должен происходить после получения входящего сообщения эхо-ботом. В этом руководстве мы рассмотрим процесс получения уведомлений через WebHook.

С другими способами настройки уведомлений можно ознакомится по ссылке.

Для получения входящих уведомлений через WebHook используется триггер "New Message Webhook" из интеграции Green-API. Настроим его следующим образом.

  1. Нажмите на знак плюс и найдите в списке приложений "Green-API"
    Изображение с поиском приложения
  2. Выберите модуль "New Message Webhook"
    Изображение с выбором триггера
  3. Нажмите на Add, чтобы добавить вебхук на инстанс, с которого будут приходить уведомления
    Изображение с добавлением нового WebHook
  4. В открывшемся окне нажмите Add, чтобы добавить подключение к инстансу
    Изображение с добавлением нового инстанса
  5. Введите значение от авторизованного инстанса, где:

    • Connection name - произвольное название подключения к инстансу (не путать с названием инстанса)
    • ID Instance и Api Token Instance - данные авторизации вашего инстанса
      Изображение с вводом данных инстанса
    Что делать, если возникла ошибка при попытке подключить инстанс?

    При попытке подключить не авторизованный инстанс, появится уведомление с ошибкой Unexpected status notAuthorized. Should be "authorized". Убрать данную ошибку можно, произведя авторизацию инстанса, связав аккаунт WhatsApp с инстансом

    Изображение с ошибкой при подключении инстанса

  6. Сохраните данные вебхука, нажав сначала на кнопку "Save", а после на кнопку "OK"

Перед дальнейшей настройкой потребуется отправить тестовое сообщение на номер телефона, который привязан к инстансу.

  • Для этого временно запустите автоматизацию, нажав на кнопку "Run Once"

    Изображение с кнопкой запуска сценария

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

    Изображение с полученным уведомлением

Как получать уведомления только от определенного чата или группы?

В окне "Create a webhook" в разделе "Only From Specify Chat" выберите пункт "Yes".
Указать чат можно вручную, выбрав в Chat ID source тип "Manual", или через список контактов, выбрав "From Contact List".
При заполнении номера вручную, требуется вводить номер в формате phoneNumber@c.us. Например: 0100123456789@c.us.
Вводить необходим полный номер телефона в международном формате. Не используйте плюс, нули, скобки или дефисы при вводе номера телефона в международном формате.

specify-chat-yes-manual

При выборе номера через список контактов необходимо выбрать нужный чат в выпадающем меню в разделе Chat Id.
specify-chat-yes-contactlist

3. Отправка сообщения#

После настройки получения входящих сообщений, необходимо создать действие, которое будет отвечать пользователю тем же текстом. В этом поможет метод sendMessage.

Для отправки сообщений в Make требуется добавить и настроить модуль "Send Message".

  1. Чтобы добавить действие, нажмите на полукруг рядом с триггером. После этого появится пустой серый круг со знаком плюс (добавление приложения)

    add-action

  2. Выберите приложение для исполнения действия, для этого в списке приложении найдите Green-API

    empty-action

  3. Выберите метод SendMessage

    send-message

  4. Из списка Connection выберите готовое подключение или добавьте подключение, нажав кнопку Add

    connection-action

  5. В поле Chat ID source выберите Manual

    Изображение с выбором Chat ID Source

  6. Чтобы ответить пользователю, который написал боту, необходимо определить его как получателя. Для этого в поле Chat Id нужно указать значение переменной chatId, которая находится в разделе senderData входящего уведомления.

    Изображение с выбором chatId

  7. В поле Message вставьте переменную textMessage из раздела messageData. После нажмите OK
    Изображение с выбором textMessage
  8. Сделайте тест, нажав кнопку Run once. Если тест успешен, нажмите на лупу, чтобы увидеть детали результата действия
    test-action

Готово! Эхо-бот готов к запуску

Как настроить, чтобы бот реагировал только на определенные сообщения?

В некоторых ситуациях может быть полезно, чтобы бот отвечал только на определенные сообщения из чата, например, когда бот находится в группе. Настроим нашего бота, чтобы он отвечал на сообщения с текстом !green-bot. Чтобы сделать это, воспользуемся фильтрами. Настроить их можно, нажав на точки, связывающие вебхук и отправку сообщения.

Изображение с нажатием на связь между получением и отправкой сообщения
После этого откроется окно с настройкой фильтра, в котором Label - произвольное название фильтра, а представленные текстовые поля используют сравнения друг с другом по условию выбранному в меню Text operators.
В нашем случае мы будем проверять входящее сообщение на наличие фразы !green-bot. Для этого вставляем в первое поле переменную textMessage из раздела messageData.
Изображение с выбором переменной textMessage
Во второе поле пишем фразу на которую будет реагировать бот
Изображение с введенной фразой во втором поле

Условием проверки ставим Starts with, для проверки на наличие фразы в начале сообщения
Изображение с выбором оператора
Теперь бот будет реагировать только на сообщения начинающиеся с !green-bot. Чтобы убрать эту часть сообщения и получить только текстовый запрос пользователя, воспользуемся модулем Replace из встроенного приложения Text parser.
Создаем модуль между вебхуком и отправкой сообщением
Изображение с созданием модуля между вебхуком и отправкой сообщения
Выбираем модуль Replace
Изображение с выбором модуля Replace
Вводим в поле Pattern фразу, которую мы будем удалять. В нашем случае !green-bot (с пробелом в конце)
Изображение с вводом фразы для замены
В поле New Value вставляем переменную emptyString для замены фразы на пустую строку
Изображение с выбором пустой строки для замены
В качестве текста для обработки выбираем textMessage
Изображение с выбором текста для обработки
Заменяем в модуле SendMessage текст ответного сообщения на вывод модуля Replace
Изображение с выбором обработанной строки в модуле SendMessage
После этой настройки бот будет отвечать, только если в начале сообщения будет введена фраза !green-bot

4. Запуск и проверка бота#

Для постоянной работы эхо-бота нужно запустить автоматизацию активировав переключатель.

Изображение с запуском сценария

Теперь бот запущен и готов к работе. Его работоспособность можно проверить, написав на номер, привязанный к инстансу. Бот ответит тем же сообщением в ответ.

GIF с демонстрацией работы бота

На этом настройка бота окончена.