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

Получение уведомлений через 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
104.248.252.93

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

После получения входящего вызова на 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"}'