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

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

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

  1. Настройка приложения Green-API
  2. Создание сценария
  3. Настройка получения входящих сообщений
  4. Отправка сообщения
  5. Запуск и проверка бота

Настройка приложения Green-API#

Настройка приложения Green-API подробно описана в разделе Настройка интеграции

Создание сценария#

Scenario (сценарий) - автоматизированный процесс, создаваемый в Make.
Каждый сценарий состоит из триггера и действия. При срабатывании триггера в одном из приложений, Make автоматически выполняет действие в другом.

Шаблон сценария

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

Алгоритм создания сценария:

  • Войдите или зарегистрируйте учетную запись в Make
  • В боковом меню нажмите кнопку Scenarios

go-to-scenarios

  • На странице сценариев нажмите Create a new scenario, чтобы создать новый сценарий

create-new-scenario

  • Сценарий успешно создан!

После создания сценария на странице Make появится знак плюс (добавление модуля).


Настройка получения входящих сообщений#

Для получения сообщений в Make требуется настроить триггер:

Настройка инстанса

При использовании триггера Watch webhooks автоматически устанавливается настройка инстанса:

"webhookUrl": "вебхуксервер make",
"incomingWebhook": "yes"

Порядок настройки триггера:

app

  • Выберите в начале списка триггер Watch webhooks

watch-webhooks

  • Нажмите на добавленный модуль, чтобы открыть его настройки

  • Нажмите Create a webhook чтобы добавить вебхук

add-webhook

  • Нажмите Create a connection чтобы добавить подключение к инстансу

create-webhook

  • Укажите значения Вашего инстанса idInstanceи apiTokenInstance
    (Сценарий будет получать сообщения с номера, привязанного к этому инстансу)

    make-green-api-form

    Поле Connection name можно использовать для названия добавляемого инстанса (например "рабочий номер" или "продажи").
    Это позволит вам легко найти нужную учётную запись в списке доступных при создании интеграций.

  • Нажмите Save для сохранения значений


  • Сделайте тест, нажав кнопку Run once.

    Если на выбранном инстансе есть входящие сообщения, и тест успешен, нажмите на лупу, чтобы увидеть, какие поля будут доступны при настройке действия.

    test-trigger

Готово! Триггер настроен и готов к использованию!

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

По умолчанию сценарий запускается при получении сообщения от любого написавшего номера.
Для запуска сценария при получении сообщения от определённого номера (или нескольких конкретных номеров), используйте параметр chatIds

chatIds

  • Номер можно выбрать из списка контактов, нажав на значок выпадающего списка:

specify-chat-yes-contactlist

  • Номер можно добавить вручную, введя его в поле ChatId:

specify-chat-yes-manual

При заполнении номера вручную, требуется вводить в международном формате + постфикс c@us - phoneNumber@c.us.
Например: 79876543210@c.us.

Для добавления нескольких номеров, добавьте желаемое количество полей, нажав на Add item

chatIds


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

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

  1. Нажмите на знак +, в списке приложений найдите GREEN-API for WhatsApp

    empty-action

  2. Выберите модуль Send a Message

    send-message

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

    При добавлении нового подключения, заполните данные Вашего инстанса idInstanceи apiTokenInstance
    После нажмите Save, чтобы сохранить.

    connection-action

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

    chat-id

  5. Нажмите на поле ввода Chat Id, укажите в нём переменную sender из объекта senderData.

    sender1

  6. В поле Message укажите переменную с текстом сообщения.

    Так как текст сообщения может передаваться в разных полях в зависимости от типа сообщения, рекомендуется указать условие:
    "extendedTextMessageData.text стоит использовать лишь в том случае, если textMessageData: textmessage не заполненно"

    text-format

  7. Нажмите Save для сохранения настроек

  8. Сделайте тест, нажав кнопку Run once.
    Если тест успешен, нажмите на лупу, чтобы увидеть детали результата действия

    test-action

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

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

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

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

Изображение с нажатием на связь между получением и отправкой сообщения

В качестве примера будем проверять входящее сообщение на наличие фразы !green-bot.

  • В параметре Condition указываем переменную с текстом сообщения.

    Так как текст сообщения может передаваться в разных полях в зависимости от типа собщения, рекомендуется указать условие:
    "если textMessageData: textmessage не пусто, то использовать его; в ином случае - использовать extendedTextMessageData.text"

  • В параметре Text operators: Equal to указываем текст, на который будет реагировать бот

Изображение с выбором переменной textMessage

Условием проверки ставим Starts with, для проверки на наличие фразы в начале сообщения

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

Теперь бот будет реагировать только на сообщения начинающиеся с !green-bot.


Чтобы убрать эту часть сообщения и получить только текстовый запрос пользователя, воспользуемся модулем Replace из встроенного приложения Text parser.

Создаём модуль между вебхуком и отправкой сообщением

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

Выбираем модуль Replace

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

Вводим в поле Pattern фразу, которую мы будем удалять. В нашем случае !green-bot (с пробелом в конце)

Изображение с вводом фразы для замены

В поле New Value вставляем переменную emptyString для замены фразы на пустую строку

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

В качестве текста для обработки выбираем textMessage

Изображение с выбором текста для обработки

Заменяем в модуле Send a Message текст ответного сообщения на вывод модуля Replace

Изображение с выбором обработанной строки в модуле SendMessage

После этой настройки бот будет отвечать, только если в начале сообщения будет введена фраза !green-bot


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

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

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

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

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

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