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

Получение уведомлений через Webhook Endpoint#

Технология Webhook Endpoint позволяет выполнять получение входящих уведомлений непосредственно на ваш сервер. Это означает, что сервер Green API будет выполнять вызов метода, опубликованного на стороне вашего сервера. Преимуществами данной технологии является максимально быстрое получение входящих уведомлений и высокая пропускная способность, ограниченная только скоростью обработки уведомлений на стороне вашего сервера. К недостаткам можно отнести сложность реализации.

Сервер Green API выполняет попытки доставки уведомлений с интервалом в 1 минуту. Поэтому, настраивайте свой сервер таким образом, чтобы он всегда был доступен для обработки входящих уведомлений, либо воспользуйтесь технологией Получение уведомлений через HTTP API. Доставка входящих уведомлений гарантируется в течение 24 часов. Скорость отправки вебхуков составляет порядка 50 уведомлений в 1 секунду (20 мсек на 1 вебхук).

Видеоинструкция#

Настройка сервера#

Для получения входящих уведомлений по технологии Webhook Endpoint потребуется выполнить следующие шаги:

  • опубликовать IP-адрес в Интернете
  • реализовать логику обработки входящих уведомлений на указанный IP-адрес
  • если требуется для сервера, то установить Webhook URL Token

Публичный IP-адрес#

Для получения входящих уведомлений требуется наличие публичного IP-адреса (endpoint), который будет доступен из сети Интернет. Таким образом сервер Green API сможет выполнить вызов вашего сервера по указанному адресу и передать входящее уведомление.

Наши публичные IP-адреса, с которых отправляются уведомления#

Вы можете указать следующие IP адреса, с которых приходят уведомления от нас, в настройках безопасности вашего сервера:

46.101.109.139
51.250.12.167
51.250.84.44
51.250.95.149
89.169.137.216
158.160.49.84
165.22.93.202
167.172.162.71

Обработка входящих уведомлений#

После получения входящего вызова на IP-адрес вашего сервера потребуется выполнить обработку полученного уведомления. Пример кода обработки входящего уведомления на NodeJS можно посмотреть в файле

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

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

Настройка методом SetSettings#

Для настройки получения входящих уведомлений по технологии Webhook Endpoint требуется указать в качестве параметра webhookUrl значение вашего IP-адреса или вашего доменного имени, и, если необходимо, webhookUrlToken для доступа на ваш сервер. Например:

https://84.211.100.201:3000/green-api/webhook/

Также требуется указать какие виды уведомлений необходимо получать. Для включения входящих уведомлений по видам, а также для указания параметра webhookUrl и webhookUrlToken воспользуйтесь методом SetSettings.

Пример тела запроса метода SetSettings#

{
    "webhookUrl": "https://84.211.100.201:3000/green-api/webhook/",
    "webhookUrlToken": "dscnsdiuafkascndjhsalbcvatsvcbasn23rfregvfdg54tds",
    "outgoingWebhook": "yes",
    "stateWebhook": "yes",
    "incomingWebhook": "yes",
    "deviceWebhook": "no"
}

Настройка в личном кабинете#

Настройку получения входящих уведомлений можно также выполнить интерактивно. Для этого перейдите в Личный кабинет и выберите требуемый инстанс. Если инстанс авторизован, то будут отображены настройки для получения входящих уведомлений см. рис. Укажите значение параметра webhookUrl, а также переключатели по видам уведомлений и, если необходима авторизация на вашем вебхук сервере, Webhook URL Token. Если инстанс не авторизован и настройки уведомлений не отображаются, обратитесь к разделу Перед началом работы.

Настройки входящих уведомлений

Авторизация

Если параметр WebhookURLToken не является пустым, наш сервер будет отправлять запрос на ваш сервер с заголовком Authorization.

  1. Если используется тип авторизации Basic, то в заголовке будет Basic <token>;

    • При использовании Basic авторизации требуется передавать в поле webhookUrlToken строку вида:
      Basic <Token>
      
  2. Если используется тип авторизации Bearer, то в заголовке будет Bearer <token>.

    • При использовании Bearer авторизации требуется передавать в поле webhookUrlToken строку вида:
      Bearer <Token>
      
  3. Если не указан тип авторизации, то в заголовке по умолчанию будет Bearer <token>;

    • В данном случае требуется передавать в поле webhookUrlToken строку вида:
      Bearer <Token>
      

Получение входящих уведомлений#

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

Отладка входящих уведомлений#

Для отладки входящих уведомлений можно использовать любой бесплатный сервис в Интернет, например сервис webhook.site. Сервис выдает уникальный адрес (URL), который требуется установить в качестве значения параметра webhookUrl.

Подробное описание формата входящих уведомлений представлено в разделе Формат входящих уведомлений.

Пример запроса, который отправляет green-api

curl --request POST 'your-webhook-url-address' \
--header 'Content-Type: application/json; charset=utf-8' \
--data-raw '{"typeWebhook":"statusInstanceChanged","instanceData":{"idInstance":000001,"wid":"7123456789@c.us","typeInstance":"whatsapp"},"timestamp":1654553712,"statusInstance":"online"}'