ReceiveNotification#
Метод предназначен для получения одного входящего уведомления из очереди уведомлений.
Метод ReceiveNotification ожидает получения уведомления в течение 5 секунд. Вызов метода завершается с пустым ответом в случае достижения таймаута. Если в течение 5 секунд в очереди появляется уведомление, то вызов метода завешается, и метод возвращает полученное уведомление.
После получения и обработки входящего уведомления требуется удалить уведомление из очереди. Для этого требуется выполнить метод DeleteNotification. После вызова метода DeleteNotification уведомление будет считаться принятым и обработанным и будет безвозвратно удалено из очереди. Таким образом следующий вызов метода ReceiveNotification вернет следующее уведомление из очереди в порядке поступления уведомлений в очередь.
Срок хранения входящих уведомлений в очереди составляет 24 часа.
Уведомления отдаются из очереди в порядке FIFO
Запрос#
Для получения следующего входящего уведомления из очереди требуется выполнить запрос по адресу:
{{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