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

GetChatHistory#

Test Postman

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

Для метода используются ограничения на частоту запросов в секунду.

Запрос#

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

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

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

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

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

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

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

{
    "chatId": "10000000",
    "count": 10
}

Ответ#

Поля ответа#

Поле Тип Описание
type string Вид сообщения:
- outgoing - исходящее сообщение;
- incoming - входящее сообщение
idMessage string Идентификатор входящего сообщения
timestamp integer Время принятия сообщения в UNIX-формате
statusMessage string Статус исходящего сообщения. Только для type = outgoing.
Возможные значения:
- delivered - доставлено
- read - прочитано/просмотрено/прослушано
sendByApi boolean Флаг отправки через API. Только для type = outgoing
typeMessage string Тип сообщения, возможные значения: textMessage/imageMessage/videoMessage /documentMessage/ audioMessage/pollMessage/locationMessage
chatId string Идентификатор чата, в котором получено сообщение.
senderName string Имя отправителя сообщения. Только для type = incoming
senderContactName string Имя отправителя из списка контактов телефонной книги. Только для type = incoming
isForwarded boolean Флаг пересланного сообщения, true/false
forwardingScore integer Количество пересылок сообщения
textMessage string Текст сообщения, если typeMessage=textMessage
downloadUrl string Ссылка на скачивание файла, если typeMessage = imageMessage /videoMessage/documentMessage/audioMessage
caption string Описание файла, если typeMessage = imageMessage/videoMessage /documentMessage/ audioMessage
fileName string Название файла, если typeMessage = imageMessage/videoMessage /documentMessage / audioMessage
jpegThumbnail string Превью изображения в base64 кодировке, если typeMessage = imageMessage/videoMessage/documentMessage , audioMessage
mimeType string Тип файла, согласно класификации Media Types, если typeMessage = imageMessage/videoMessage/documentMessage/ audioMessage
isAnimated boolean Флаг анимированного файла, true/false.
Присутствует если typeMessage = imageMessage/videoMessage/documentMessage/audioMessage

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

[
    {
        "type": "outgoing",
        "idMessage": "1769676078000",
        "timestamp": 1769676078,
        "typeMessage": "textMessage",
        "chatId": "10000000",
        "textMessage": "Я использую GREEN-API для отправки этого сообщения!",
        "senderId": "10000000",
        "senderName": "Василиса Премудрая",
        "senderContactName": "Василиса Премудрая"
    }
]

Ошибки#

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

Код HTTP Идентификатор ошибки Описание
400 Bad Request
Validation failed
Ошибка валидации
400 Bad Request
Validation failed.
Details: 'count' must be a number
Некорректный тип данных для поля count,
либо значение поля превышает максимальное безопасное целочисленное значение

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

import requests

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

payload = {
    "chatId": "10000000",
    "count": 100
    }

headers = {'Content-Type': 'application/json'}

response = requests.post(url, json=payload)

print(response.text.encode('utf8'))
curl --location '{{apiUrl}}/waInstance{{idInstance}}/getChatHistory/{{apiTokenInstance}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "chatId": "10000000",
    "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\": \"10000000\",\"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\": \"10000000\",\"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 apiUrl, idInstance and apiTokenInstance values are available in console, double brackets must be removed
    url = "{{apiUrl}}/waInstance{{idInstance}}/getChatHistory/{{apiTokenInstance}}"

    ' chatId - personal or group chat identifier whose message history you want to receive, count - number of messages to receive, default value 100
    RequestBody = "{""chatId"":""10000000"",""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