Получение уведомлений через 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
.
-
Если используется тип авторизации Basic, то в заголовке будет
Basic <token>
;- При использовании Basic авторизации требуется передавать в поле
webhookUrlToken
строку вида:Basic <Token>
- При использовании Basic авторизации требуется передавать в поле
-
Если используется тип авторизации Bearer, то в заголовке будет
Bearer <token>
.- При использовании Bearer авторизации требуется передавать в поле
webhookUrlToken
строку вида:Bearer <Token>
- При использовании Bearer авторизации требуется передавать в поле
-
Если не указан тип авторизации, то в заголовке по умолчанию будет
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"}'