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

LastOutgoingMessages#

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

Для получения журнала отправленных сообщений необходимо:

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

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

Сообщения отправленные с API записываются в журнал автоматически.

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

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

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

Метод LastOutgoingMessages возвращает только ту историю, которую системе отдает WhatsApp.

Запрос#

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

GET {{apiUrl}}/waInstance{{idInstance}}/lastOutgoingMessages/{{apiTokenInstance}}?minutes={{minutes_count}}

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

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

Параметр Тип Обязательный Описание
minutes integer нет время в минутах, за которое требуется показать сообщения (по умолчанию равно 1440 минут)

Ответ#

Поля ответа#

Массив объектов с полями:

Поле Тип Описание
type string Вид сообщения, outgoing - исходящее сообщение
idMessage string Идентификатор исходящего сообщения
timestamp integer Время крайнего действия по сообщению в UNIX-формате
statusMessage string Статус исходящего сообщения, возможные значения:
noAccount - нет аккаунта WhatsApp на номере телефона
notInGroup - не состоите в данной группе
pending - сообщение отправляется
sent - отправлено
delivered - доставлено
read - прочитано/просмотрено/прослушано
yellowCard - приостановка отправки сообщений из-за спамерской активности. Сообщения отправленные после получения статуса хранятся в очереди к отправке 24 часа. Для продолжения работы инстанса требуется сделать перезагрузку инстанса
sendByApi boolean Флаг указывает отправлено сообщение из API или нет
typeMessage string Тип сообщения, возможные значения:
textMessage - текстовое сообщение
imageMessage - сообщение с изображением
videoMessage - видео сообщение
documentMessage - сообщение с файлом документа
audioMessage - аудио сообщение
stickerMessage - сообщение со стикером
reactionMessage - сообщение с реакцией
locationMessage - сообщение геолокации
contactMessage - сообщение с контактом
extendedTextMessage - сообщение со ссылкой и превью
pollMessage - сообщение с опросом
quotedMessage - сообщение с цитированием
chatId string Идентификатор чата, в который сообщение было отправлено
isForwarded boolean Флаг указывает является ли сообщение пересланным
forwardingScore integer Количество пересылок сообщения
textMessage string Текст сообщения, если typeMessage = textMessage/extendedTextMessage
downloadUrl string Ссылка на скачивание файла, если typeMessage = imageMessage /videoMessage/documentMessage/audioMessage/stickerMessage
caption string Описание файла, если typeMessage = imageMessage/videoMessage /documentMessage/audioMessage/stickerMessage
fileName string Название файла, если typeMessage = imageMessage/videoMessage /documentMessage/audioMessage/stickerMessage. Поле заполняется корректно только для typeMessage = documentMessage, в остальных случаях название файла генерируется автоматически
jpegThumbnail string Превью изображения в base64 кодировке, если typeMessage = imageMessage/videoMessage/documentMessage/audioMessage/stickerMessage
mimeType string Тип файла, согласно класификации Media Types, если typeMessage = imageMessage/videoMessage/documentMessage/audioMessage/stickerMessage
isAnimated boolean Флаг указывает анимирован ли файл, если typeMessage = imageMessage/videoMessage/documentMessage/audioMessage/stickerMessage
location object Объект о структуре локации, если typeMessage = locationMessage
contact object Объект о структуре контакта, если typeMessage = contactMessage
extendedTextMessage object Объект с текстовым сообщением (расширенный), если typeMessage = extendedTextMessage/quotedMessage
extendedTextMessageData object Объект с реакцией, если typeMessage = reactionMessage
pollMessageData object Объект о структуре данных опроса, если typeMessage = pollMessage
quotedMessage object Объект данных о цитируемом сообщении, если typeMessage = quotedMessage/reactionMessage

Поля объекта location:

Поле Тип Описание
nameLocation string Название локации
address string Адрес локации
latitude double Широта локации
longitude double Долгота локации
jpegThumbnail string Превью изображения в base64 кодировке
isForwarded boolean Флаг указывает является ли сообщение пересланным
forwardingScore integer Количество пересылок сообщения

Поля объекта contact:

Поле Тип Описание
displayName string Отображаемое имя контакта
vcard string Структура VCard (визитной карточки контакта)
isForwarded boolean Флаг указывает является ли сообщение пересланным
forwardingScore integer Количество пересылок сообщения

Поля объекта extendedTextMessage:

Поле Тип Описание
text string Текст ссылки
description string Описание ссылки
title string Заголовок ссылки
previewType string Тип превью ссылки. Значение previewType:None устарело
jpegThumbnail string Превью изображения в base64 кодировке
stanzaId string ID цитируемого сообщения. Присутствует только для typeMessage = quotedMessage
participant string ID чата получателя/отправителя. Присутствует только для typeMessage = quotedMessage
isForwarded boolean Флаг указывает является ли сообщение пересланным
forwardingScore integer Количество пересылок сообщения

Поля объекта extendedTextMessageData:

Поле Тип Описание
text string Реакция (эмоджи) на сообщение

Поля объекта pollMessageData:

Поле Тип Описание
name string Текст опроса
options array Массив данных о вариантах выбора
votes array Массив данных ответов
multipleAnswers boolean Флаг о разрешинии нескольких ответов

Поля массива options

Параметр Тип Описание
optionName string Текст варинта выбора

Поля массива votes:

Параметр Тип Описание
optionName string Текст варинта выбора
optionVoters array Массив идентификаторов проголосовавших аккаунтов

Поля объекта quotedMessage:

Поле Тип Описание
stanzaId string ID цитируемого сообщения
participant string ID чата получателя
typeMessage string Тип цитириуемого сообщения

Остальные поля объекта quotedMessage заполняются в зависимости от типа цитируемого сообщения и идентичны полям описанных выше

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

[
    {
        "type": "outgoing",
        "idMessage": "BAE5143000000000",
        "timestamp": 1706761225,
        "typeMessage": "textMessage",
        "chatId": "70000000012@c.us",
        "textMessage": "Привет",
        "statusMessage": "read",
        "sendByApi": true
    },
    {
        "type": "outgoing",
        "idMessage": "BAE5F94000000000",
        "timestamp": 1706765613,
        "typeMessage": "imageMessage", //"videoMessage"/`documentMessage`/`audioMessage`/`stickerMessage`
        "chatId": "70000000012@c.us",
        "downloadUrl": "https://api.green-api.com/waInstance1234/downloadFile/3EB0BDDC94BFDFB3D4FA.jpg",
        "caption": "Как тебе?",
        "fileName": "b89ded5e-1a3b-4168-895a-540123456789.jpg",
        "jpegThumbnail": "/9j/4AAQSkZJRgABAQAAAQABAAD/FFFCF//Z",
        "mimeType": "image/jpeg",
        "isAnimated": false,
        "isForwarded": true,
        "forwardingScore": 2,
        "statusMessage": "read",
        "sendByApi": false
    },
    {
        "type": "outgoing",
        "idMessage": "3A1EBA0F23004BD415BB",
        "timestamp": 1706601621,
        "typeMessage": "reactionMessage",
        "chatId": "70000000012@c.us",
        "extendedTextMessageData": {
            "text": "😄"
        },
        "quotedMessage": {
            "stanzaId": "B4D7D8A1A7D887D5580F000000000000",
            "participant": "70000000012@c.us",
        },
        "statusMessage": "read",
        "sendByApi": false
    },
    {
        "type": "outgoing",
        "idMessage": "BAE5870000000000",
        "timestamp": 1706761414,
        "typeMessage": "locationMessage",
        "chatId": "70000000012@c.us",
        "location": {
            "nameLocation": "Cafe",
            "address": "Астана",
            "jpegThumbnail": "/9j/4AAQSkZJRgABAQAASABIAAD/4QBYRX",
            "latitude": 51.1280000000000,
            "longitude": 71.4307620000000,
            "forwardingScore": 0,
            "isForwarded": false
        },
        "statusMessage": "read",
        "sendByApi": true
    },
    {
        "type": "outgoing",
        "idMessage": "F39F2DCE000000000",
        "timestamp": 1706762400,
        "typeMessage": "contactMessage",
        "chatId": "70000000012@c.us",
        "contact": {
            "displayName": "Виктор Петров",
            "vcard": "BEGIN:VCARD\nVERSION:3.0\nN:;Виктор Петров;;;\nFN:Виктор Петров\nTEL;type=CELL;type=VOICE;waid=70000000013:+7 000 000-00-13\nEND:VCARD",
            "forwardingScore": 0,
            "isForwarded": false
        },
        "statusMessage": "read",
        "sendByApi": false
    },
    {
        "type": "outgoing",
        "idMessage": "BAE56E0000000000",
        "timestamp": 1706849285,
        "typeMessage": "extendedTextMessage",
        "chatId": "70000000012@c.us",
        "textMessage": "https://green-api.com/",
        "extendedTextMessage": {
            "text": "https://green-api.com/",
            "description": "GREEN API - интеграция с WhatsApp на любом языке программирования PHP, JavaScript, 1С, Python, Java, C#, VBA",
            "title": "Green API для отправки и получения сообщений Whatsapp",
            "previewType": "None",
            "jpegThumbnail": "/9j/2wBDAAYEBQYFBAYGBQYHBwYICh/5IAMkIQnx0EIQkIEIQkIEIQkIEIQkIEIQkI//9k=",
            "forwardingScore": 0,
            "isForwarded": false
        },
        "statusMessage": "sent",
        "sendByApi": true
    },
    {
        "type": "outgoing",
        "idMessage": "460D84E00000000000",
        "timestamp": 1706762412,
        "typeMessage": "pollMessage",
        "chatId": "70000000012@c.us",
        "pollMessageData": {
            "name": "Выберите любимый цвет",
            "options": [
                {
                    "optionName": "Красный"
                },
                {
                    "optionName": "Зеленый"
                }
            ],
            "multipleAnswers": true
        },
        "statusMessage": "delivered",
        "sendByApi": true
    },
    {
        "type": "outgoing",
        "idMessage": "B1494991277FD000000000000000000000",
        "timestamp": 1706849516,
        "typeMessage": "quotedMessage",
        "chatId": "70000000012@c.us",
        "extendedTextMessage": {
            "text": "Черный",
            "stanzaId": "460D84E00000000000",
            "participant": "70000000012@c.us"
        },
        "quotedMessage": {
            "stanzaId": "460D84E00000000000",
            "participant": "70000000012@c.us",
            "typeMessage": "pollMessage",
            "pollMessageData": {
                "name": "Выберите любимый цвет",
                "options": [],
                "multipleAnswers": true
            }
        },
        "statusMessage": "delivered",
        "sendByApi": false
    },
    {
        "type": "outgoing",
        "idMessage": "21D6C50B400DBCEC30000000000000",
        "timestamp": 1706852882,
        "typeMessage": "quotedMessage",
        "chatId": "70000000012@c.us",
        "extendedTextMessage": {
            "text": "Круто",
            "stanzaId": "79DC2458992097F00000000000000000",
            "participant": "70000000012@c.us"
        },
        "quotedMessage": {
            "stanzaId": "79DC2458992097F00000000000000000",
            "participant": "70000000012@c.us",
            "typeMessage": "imageMessage", //"videoMessage"/`documentMessage`/`audioMessage`/`stickerMessage`
            "downloadUrl": "",
            "caption": "",
            "fileName": "",
            "jpegThumbnail": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAgq7O/wD/2Q==",
            "mimeType": "image/jpeg",
            "isAnimated": false,
            "isForwarded": false,
            "forwardingScore": 0
        },
        "statusMessage": "read",
        "sendByApi": true
    }
]

Ошибки LastOutgoingMessages#

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

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

import requests

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

payload = {}
headers= {}

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

print(response.text.encode('utf8'))
curl --location '{{apiUrl}}/waInstance{{idInstance}}/lastOutgoingMessages/{{apiTokenInstance}}?minutes=3240'
var restTemplate = new RestTemplate();
var requestUrl = new StringBuilder();
requestUrl
    .append({{apiUrl}})
    .append("/waInstance").append({{idInstance}})
    .append("/lastOutgoingMessages/")
    .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("/lastOutgoingMessages/")
    .append({{apiTokenInstance}});

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

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

    ' The apiUrl, idInstance and apiTokenInstance values are available in your account, double brackets must be removed
    url = "{{apiUrl}}/waInstance{{idInstance}}/lastOutgoingMessages/{{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