GetChatHistory#
Метод возвращает историю сообщений одного выбранного чата.
Для метода используются ограничения на частоту запросов в секунду.
Запрос#
Для получения истории сообщений требуется выполнить запрос по адресу:
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