[go: up one dir, main page]

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

GetOutgoingStatuses#

Test Postman

Бета-версия

Функциональность находится в режиме бета-версии. Функции могут быть изменены, а также могут работать нестабильно. В будущем за функционал может взиматься дополнительная плата.
Подключение к функционалу можно запросить через техподдержку Green API

Метод возвращает крайние отправленные статусы аккаунта. По умолчанию возвращаются статусы за последние 24 часа.

Для получения статусов сообщений, необходимо включить настройку Получать уведомления о статусах отправленных сообщений методом SetSettings или через личный кабинет (статусы сообщения полученные до включения настройки не обновятся).

Применение настроек занимает до 5 минут.

Статусы можно получить только от номеров из контактной книги.

Список контактов подтягивается методом GetContacts по значению поля contactName. Чтобы получить актуальный список контактов, требуется переименовать контакт и заново авторизоваться, пересканировав QR код.

Статусы отправляются только первым 1024 контактам из метода GetContacts с корректным полем contactName.

Запрос#

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

GET
{{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);