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

ReceiveNotification#

Test Postman

Метод предназначен для получения одного входящего уведомления из очереди уведомлений.

Метод ReceiveNotification ожидает получения уведомления в течение 5 секунд. Вызов метода завершается с пустым ответом в случае достижения таймаута. Если в течение 5 секунд в очереди появляется уведомление, то вызов метода завешается, и метод возвращает полученное уведомление.

После получения и обработки входящего уведомления требуется удалить уведомление из очереди. Для этого требуется выполнить метод DeleteNotification. После вызова метода DeleteNotification уведомление будет считаться принятым и обработанным и будет безвозвратно удалено из очереди. Таким образом следующий вызов метода ReceiveNotification вернет следующее уведомление из очереди в порядке поступления уведомлений в очередь.

Срок хранения входящих уведомлений в очереди составляет 24 часа.

Уведомления отдаются из очереди в порядке FIFO

Запрос#

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

GET
{{apiUrl}}/waInstance{{idInstance}}/receiveNotification/{{apiTokenInstance}}?receiveTimeout={{seconds}}

Для получения параметров запроса apiUrl, idInstance и apiTokenInstance обратитесь к разделу Перед началом работы.

Параметры URL запроса#

Параметр Тип Обязательный Описание
receiveTimeout integer нет Таймаут ожидания уведомления, принимает значение от 5 до 60 секунд (по умолчанию 5 секунд)

Ответ#

Поля ответа#

Поле Тип Описание
receiptId integer Идентификатор доставки для удаления входящего уведомления методом DeleteNotification
body object Входящее уведомление согласно Формату входящих уведомлений

Пример тела ответа#

{
    "receiptId": 1234567,
    "body": {
        "typeWebhook": "incomingMessageReceived",
        "instanceData": {
            "idInstance": 1234,
            "wid": "11001234567@c.us",
            "typeInstance": "whatsapp"
        },
        "timestamp": 1588091580,
        "idMessage": "F7AEC1B7086ECDC7E6E45923F5EDB825",
        "senderData": {
            "chatId": "79001234568@c.us",
            "sender": "79001234568@c.us",
            "senderName": "Иван",
            "senderContactName": "Иван Васильевич"
        },
        "messageData":{
            "typeMessage":"textMessage",
            "textMessageData":{
                "textMessage":"I use Green-API to send this message to you!"
            }
        }
    }
}

Ошибки ReceiveNotification#

Перечень общих для всех методов ошибок смотрите в разделе Стандартные ошибки

Код HTTP Идентификатор ошибки Описание
400 Parameter idInstance not an integer Параметр idInstance не задан или содержит нецифровые символы
400 Parameter apiTokenInstance not define Параметр apiTokenInstance не задан
400 Message cannot be received because custom webhook url is set. Go to cabinet, clear webhook url for instance: ХХХХХХХХХХ and wait for about 1 minute for another attempt Поле webhookUrl не пустое. Очистите URL-адрес для инстанса ХХХХХХХХХХ и подождите около 1 минуты перед тем, как начать запрашивать уведомления.

Примеры кода#

import requests

url = "{{apiUrl}}/waInstance{{idInstance}}/receiveNotification/{{apiTokenInstance}}"

payload = {}
headers= {}

response = requests.request("GET", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
curl --location '{{apiUrl}}/waInstance{{idInstance}}/receiveNotification/{{apiTokenInstance}}'
var restTemplate = new RestTemplate();
var requestUrl = new StringBuilder();
requestUrl
    .append({{apiUrl}})
    .append("/waInstance").append({{idInstance}})
    .append("/receiveNotification/")
    .append({{apiTokenInstance}});

var response = restTemplate.exchange(requestUrl.toString(), HttpMethod.GET, null, String.class);
System.out.println(response);
var requestUrl = new StringBuilder();
requestUrl
    .append({{apiUrl}})
    .append("/waInstance").append({{idInstance}})
    .append("/receiveNotification/")
    .append({{apiTokenInstance}});

var response = Unirest.get(requestUrl.toString())
    .header("Content-Type", "application/json")
    .asString();

System.out.println(response);
Sub ReceiveNotification()
    Dim url As String
    Dim http As Object
    Dim response As String

    ' The apiUrl, idInstance and apiTokenInstance values are available in console, double brackets must be removed
    url = "{{apiUrl}}/waInstance{{idInstance}}/receiveNotification/{{apiTokenInstance}}"

    Set http = CreateObject("MSXML2.XMLHTTP")

    http.Open "GET", url, False
    http.Send

    response = http.responseText

    Debug.Print response

    ' Outputting the answer to the desired cell
    ' Range("A1").Value = response

    Set http = Nothing
End Sub 

Пример кода получения уведомлений на NodeJS можно посмотреть в файле ReceiveNotifications