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

ReceiveNotification#

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

Метод 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": "Green API"
        },
        "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

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

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("https://api.greenapi.com")
    .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("https://api.greenapi.com")
    .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 idInstance and apiTokenInstance values are available in your account, 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