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

GetChatHistory#

Метод возвращает историю сообщений чата.

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

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

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

Отправленные и полученные сообщения до включения настроек не попадут в журнал.

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

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

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

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

Запрос#

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

POST {{apiUrl}}/waInstance{{idInstance}}/getChatHistory/{{apiTokenInstance}}

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

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

Параметр Тип Обязательный Описание
chatId string Да Идентификатор личного чата историю сообщений которого требуется получить
count integer Нет Количество сообщений для получения. Значение по умолчанию 100

Пример тела запроса#

Запрос последних 10 сообщений:

{
    "chatId": "11001234567@c.us",
    "count": 10
}

Ответ#

Ответ содержит список всех полученных и отправленных сообщений в чате. Сортировка по убыванию даты отправки сообщения.

Поля ответа#

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

Поле Тип Описание
type string Вид сообщения: outgoing - исходящее сообщение; incoming - входящее сообщение
idMessage string Идентификатор входящего сообщения
timestamp integer Время принятия сообщения в UNIX-формате
statusMessage string Статус исходящего сообщения. Присутствует только для type = outgoing. Возможные значения:
noAccount - нет аккаунта WhatsApp на номере телефона
pending - сообщение отправляется
sent - отправлено
delivered - доставлено
read - прочитано/просмотрено/прослушано
failed - произошла ошибка при отправке сообщения на сервер WhatsApp. Закончились лимиты на отправку шаблонных сообщений
noActiveSession - не открыто 24 часовое окно обслуживания для отправки сервисных сообщений
sendByApi boolean Флаг указывает отправлено сообщение из API или нет. Присутствует только для type = outgoing
typeMessage string Тип сообщения, возможные значения:
textMessage - текстовое сообщение
contactsArrayMessage - сообщение с массивом контактов
templateMessage - шаблонное сообщение. Присутствует только для type = outgoing
templateButtonsReplyMessage - кнопки шаблона ответного сообщения. Присутствует только для type = incoming
chatId string Идентификатор чата, в котором получено сообщение.
senderId string Идентификатор отправителя сообщения. Присутствует только для type = incoming
senderName string Имя отправителя сообщения. Присутствует только для type = incoming
senderContactName string Устарел
textMessage string Текст сообщения, если typeMessage=textMessage

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

[
    {
        "type": "incoming",
        "idMessage": "9DB14F14A253D33F4A9CD84123456789",
        "timestamp": 1706522263,
        "typeMessage": "textMessage",
        "chatId": "120363153000000000@g.us",
        "textMessage": "Привет",
        "senderId": "70000000012@c.us",
        "senderName": "Николай",
        "senderContactName": "Коля"
    },
    {
        "type": "outgoing",
        "idMessage": "BAE5143000000000",
        "timestamp": 1706761225,
        "typeMessage": "textMessage",
        "chatId": "70000000012@c.us",
        "textMessage": "Привет",
        "statusMessage": "read",
        "sendByApi": true
    },
    {
        "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": "incoming",
        "idMessage": "3AA2C1D83560000000000",
        "timestamp": 1706675513,
        "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
        },
        "senderId": "79123456789@c.us",
        "senderName": "79123456789",
        "senderContactName": "79123456789",
        "deletedMessageId": "",
        "editedMessageId": "",
        "isEdited": false,
        "isDeleted": false
    },
    {
        "type": "incoming",
        "idMessage": "3AA2C1D83560000000000",
        "timestamp": 1706675513,
        "typeMessage": "contactsArrayMessage",
        "chatId": "70000000012@c.us",
        "messageData": {
            "contacts": [
            {
                "displayName": "Иван Иванов",
                "vcard": "BEGIN:VCARD\nVERSION:3.0\nN:;Иван Иванов;;;\nFN:Иван Иванов\nORG:Иван Иванов\nTITLE:\nTEL;type=Mobile:+7 912 345-56-78\nEND:VCARD",
                "contextInfo": null
            },
            {
                "displayName": "Василий",
                "vcard": "BEGIN:VCARD\nVERSION:3.0\nN:;Василий;;;\nFN:Василий\nTEL;type=Mobile;waid=79123456799:+7 912 345-67-99\nEND:VCARD",
                "contextInfo": null
            }
            ],
            "forwardingScore": 0,
            "isForwarded": false
        },
        "senderId": "79123456789@c.us",
        "senderName": "79123456789",
        "senderContactName": "79123456789",
        "deletedMessageId": "",
        "editedMessageId": "",
        "isEdited": false,
        "isDeleted": false
    },
    {
    "type": "outgoing",
    "idMessage": "AC3C8F45EA99087477B34C8964AEB8D8",
    "timestamp": 1764056445,
    "typeMessage": "contactsArrayMessage",
    "chatId": "79123456789@c.us",
    "messageData": {
        "contacts": [
            {
                "displayName": "Иван Иванов",
                "vcard": "BEGIN:VCARD\nVERSION:3.0\nN:;Иван Иванов;;;\nFN:Иван Иванов\nORG:Иван Иванов\nTITLE:\nTEL;type=Mobile:+7 912 345-56-78\nEND:VCARD",
                "contextInfo": null
            },
            {
                "displayName": "Василий",
                "vcard": "BEGIN:VCARD\nVERSION:3.0\nN:;Василий;;;\nFN:Василий\nTEL;type=Mobile;waid=79123456799:+7 912 345-67-99\nEND:VCARD",
                "contextInfo": null
            }
            ],
        "forwardingScore": 0,
        "isForwarded": false
        },
    "statusMessage": "delivered",
    "sendByApi": false,
    "deletedMessageId": "",
    "editedMessageId": "",
    "isEdited": false,
    "isDeleted": false
    }
]

Ошибки GetChatHistory#

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

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

import requests

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

payload = "{\r\n\t\"chatId\": \"11001234567@c.us\",\r\n\t\"count\": 100\r\n}"
headers = {
  'Content-Type': 'application/json'
}

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

print(response.text.encode('utf8'))
curl --location '{{apiUrl}}/waInstance{{idInstance}}/getChatHistory/{{apiTokenInstance}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "chatId": "11001234567@c.us",
    "count": 10
}'
var restTemplate = new RestTemplate();
var requestUrl = new StringBuilder();
requestUrl
    .append({{apiUrl}})
    .append("/waInstance").append({{idInstance}})
    .append("/getChatHistory/")
    .append({{apiTokenInstance}});

var headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);

var jsonBody = "{\"chatId\": \"11001234567@c.us\",\"count\": 10}";

var requestEntity = new HttpEntity<>(jsonBody, headers);

var response = restTemplate.exchange(requestUrl.toString(), HttpMethod.POST, requestEntity, String.class);
System.out.println(response);
var requestUrl = new StringBuilder();
requestUrl
    .append({{apiUrl}})
    .append("/waInstance").append({{idInstance}})
    .append("/getChatHistory/")
    .append({{apiTokenInstance}});

var response = Unirest.post(requestUrl.toString())
    .header("Content-Type", "application/json")
    .body("{\"chatId\": \"11001234567@c.us\",\"count\": 10}")
    .asString();

System.out.println(response);
Sub GetChatHistory()
    Dim url As String
    Dim RequestBody 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}}/getChatHistory/{{apiTokenInstance}}"

    ' chatId - personal chat identifier whose message history you want to receive, count - number of messages to receive, default value 100
    RequestBody = "{""chatId"":""71234567890@c.us"",""count"":10}"

    Set http = CreateObject("MSXML2.XMLHTTP")

    With http
        .Open "POST", url, False
        .setRequestHeader "Content-Type", "application/json"
        .send RequestBody
    End With

    response = http.responseText

    Debug.Print response

    ' Outputting the answer to the desired cell
    Range("A1").Value = response

    Set http = Nothing
End Sub