GetOutgoingStatuses#
Бета-версия
Функциональность находится в режиме бета-версии. Функции могут быть изменены, а также могут работать нестабильно. В будущем за функционал может взиматься дополнительная плата.
Подключение к функционалу можно запросить через техподдержку Green API
Метод возвращает крайние отправленные статусы аккаунта. По умолчанию возвращаются статусы за последние 24 часа.
Для получения статусов сообщений, необходимо включить настройку
Получать уведомления о статусах отправленных сообщений
методом SetSettings или через личный кабинет (статусы сообщения полученные до включения настройки не обновятся).Применение настроек занимает до 5 минут.
Статусы можно получить только от номеров из контактной книги.
Список контактов подтягивается методом GetContacts по значению поля
contactName
. Чтобы получить актуальный список контактов, требуется переименовать контакт и заново авторизоваться, пересканировав QR код.Статусы отправляются только первым 1024 контактам из метода GetContacts с корректным полем
contactName
.
Запрос#
Для получения статусов требуется выполнить запрос по адресу:
{{apiUrl}}/waInstance{{idInstance}}/getOutgoingStatuses/{{apiTokenInstance}}?minutes={{minutes_count}}
Для получения параметров запроса apiUrl
, idInstance
и apiTokenInstance
обратитесь к разделу Перед началом работы.
Параметры URL запроса#
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
minutes | integer | Нет | время в минутах, за которое требуется показать статусы (по умолчанию равен 1440 минутам) |
Ответ#
Поля ответа#
Массив объектов с полями:
Поле | Тип | Описание |
---|---|---|
type | string | Вид сообщения, outgoing - исходящее сообщение |
idMessage | string | Идентификатор исходящего сообщения |
timestamp | integer | Время крайнего действия по сообщению в UNIX-формате |
statusMessage | string | Статус исходящего сообщения, возможные значения: |
pending - сообщение отправляется | ||
sent - отправлено | ||
delivered - доставлено | ||
read - прочитано/просмотрено/прослушано | ||
sendByApi | boolean | Флаг указывает отправлено сообщение из API или нет |
typeMessage | string | Тип сообщения, возможные значения: |
extendedTextMessage - Расширенное текстовое сообщение | ||
imageMessage - сообщение с изображением | ||
videoMessage - видео сообщение | ||
audioMessage - аудио сообщение | ||
chatId | string | Идентификатор чата отправителя сообщения |
participants | array | Массив строк с идентификаторами контактов, которым будет доступен статус. Если значение поля пустое,"participants": [] , статус доступен всем контактам. По умолчанию принимает значение [] , если "sendByApi" = false |
textMessage | string | Текст сообщения, если typeMessage = extendedTextMessage |
downloadUrl | string | Ссылка на скачивание файла, если typeMessage = imageMessage /videoMessage /audioMessage |
caption | string | Описание файла, если typeMessage = imageMessage /videoMessage |
fileName | string | Название файла, если typeMessage = imageMessage /videoMessage /audioMessage . Поле генерируется автоматически |
jpegThumbnail | string | Превью изображения в base64 кодировке, если typeMessage = imageMessage /videoMessage |
mimeType | string | Тип файла, согласно класификации Media Types, если typeMessage = imageMessage /videoMessage /audioMessage |
extendedTextMessage | object | Объект с текстовым сообщением (расширенный), если typeMessage = extendedTextMessage |
Поля объекта extendedTextMessage
:
Поле | Тип | Описание |
---|---|---|
text | string | Текст ссылки |
backgroundColor | string | Цвет фона сообщения. Значение по умолчанию: #FFFFFF . Пример сайта для получения значения цвета фона |
font | string | Шрифт сообщения. Принимает значения: |
SERIF - Так будет выглядеть ваш текст | ||
SANS_SERIF - Так будет выглядеть ваш текст | ||
NORICAN_REGULAR - Here is how your text will look | ||
BRYNDAN_WRITE - Так будет выглядеть ваш текст | ||
OSWALD_HEAVY - Так будет выглядеть ваш текст | ||
participants | array | Массив строк с идентификаторами контактов, которым будет доступен статус. Если значение поля пустое,"participants": [] , статусы доступны всем контактам. По умолчанию принимает значение [] , если "sendByApi" = false |
Пример тела ответа#
[
{
"type": "outgoing",
"idMessage": "BAE5018000000000",
"timestamp": 1710134811,
"typeMessage": "extendedTextMessage",
"chatId": "70000000001@c.us",
"textMessage": "I use Green-API to send this Status!",
"extendedTextMessage": {
"text": "I use Green-API to send this Status!",
"backgroundColor": "#228B22",
"font": "SERIF",
"participants": [
"70000000001@c.us",
"70000000002@c.us" // статус будет доступен только указанным контактам
]
},
"statusMessage": "read",
"sendByApi": true
},
{
"type": "outgoing",
"idMessage": "BAE5207000000000",
"timestamp": 1710134814,
"typeMessage": "imageMessage", // "videoMessage" / "audioMessage"
"chatId": "70000000001@c.us",
"participants": [], // статус доступен всем
"downloadUrl": "https://sw-media.storage.greenapi.net/1101000000/dcf81410-bdbc-4aed-bf23-d1845c000000.jpg",
"caption": "I use Green-API to send this Status!",
"fileName": "dcf81410-bdbc-4aed-bf23-d1845cd74754.jpg",
"jpegThumbnail": "/9j/2wCEABALDA4MChAODQ4SERATGCgaGBYWGDEjJ",
"mimeType": "image/jpeg",
"statusMessage": "read",
"sendByApi": true
}
]
Ошибки GetOutgoingStatuses#
Перечень общих для всех методов ошибок смотрите в разделе Стандартные ошибки.
Код HTTP | Идентификатор ошибки | Описание |
---|---|---|
403 | Forbidden | Доступ к функционалу бета-версии методов статусов отсутствует. Подключение к функционалу можно запросить через техподдержку Green API |
Примеры кода#
import requests
url = "{{apiUrl}}/waInstance{{idInstance}}/getOutgoingStatuses/{{apiTokenInstance}}"
payload = {}
headers= {}
response = requests.request("GET", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
curl --location '{{apiUrl}}/waInstance{{idInstance}}/getOutgoingStatuses/{{apiTokenInstance}}?minutes=3240'
var restTemplate = new RestTemplate();
var requestUrl = new StringBuilder();
requestUrl
.append({{apiUrl}})
.append("/waInstance").append({{idInstance}})
.append("/getOutgoingStatuses/")
.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("/getOutgoingStatuses/")
.append({{apiTokenInstance}});
var response = Unirest.get(requestUrl.toString())
.header("Content-Type", "application/json")
.asString();
System.out.println(response);