GetMessage#
Метод возвращает сообщение чата.
Запрос#
Для получения сообщения требуется выполнить запрос по адресу:
POST
{{apiUrl}}/v3/waInstance{{idInstance}}/getMessage/{{apiTokenInstance}}
Для получения параметров запроса apiUrl
, idInstance
и apiTokenInstance
обратитесь к разделу Перед началом работы.
Параметры запроса#
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
chatId | string | Да | Идентификатор личного или группового чата, сообщение которого требуется получить |
idMessage | string | Да | ID сообщения |
Пример тела запроса#
Запрос сообщения:
{
"chatId": "12345678",
"idMessage": "1234543554675687678979"
}
Ответ#
Ответ содержит полученное или отправленное сообщение из чата.
Поля ответа#
Объект с полями:
Поле | Тип | Описание |
---|---|---|
type | string | Вид сообщения: outgoing - исходящее сообщение; incoming - входящее сообщение |
idMessage | string | Идентификатор входящего сообщения |
timestamp | integer | Время принятия сообщения в UNIX-формате |
statusMessage | string | Статус исходящего сообщения. Присутствует только для type = outgoing . Возможные значения: |
pending - сообщение отправляется | ||
sent - отправлено | ||
delivered - доставлено | ||
read - прочитано/просмотрено/прослушано | ||
sendByApi | boolean | Флаг указывает отправлено сообщение из API или нет. Присутствует только для type = outgoing |
typeMessage | string | Тип сообщения, возможные значения: |
textMessage - текстовое сообщение | ||
imageMessage - сообщение с изображением | ||
videoMessage - видео сообщение | ||
documentMessage - сообщение с файлом документа | ||
audioMessage - аудио сообщение | ||
stickerMessage - сообщение со стикером | ||
reactionMessage - сообщение с реакцией | ||
locationMessage - сообщение геолокации | ||
contactMessage - сообщение с контактом | ||
extendedTextMessage - сообщение со ссылкой и превью | ||
pollMessage - сообщение с опросом | ||
pollUpdateMessage - сообщение с обновлением опросом. Присутствует только для type = incoming | ||
quotedMessage - сообщение с цитированием | ||
chatId | string | Идентификатор чата, в котором получено сообщение. |
senderId | string | Идентификатор отправителя сообщения. Присутствует только для type = incoming |
senderName | string | Имя отправителя сообщения. Присутствует только для type = incoming |
senderContactName | string | Имя отправителя из списка контактов текущего аккаунта. Присутствует только для type = incoming |
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 /pollUpdateMessage |
quotedMessage | object | Объект данных о цитируемом сообщении, если typeMessage = quotedMessage /reactionMessage |
deletedMessageId | string | Временно не работает. Идентификатор сообщения которое удалили. Присутствует если сообщение было удалено |
editedMessageId | string | Временно не работает. Идентификатор сообщения которое отредактировали. Присутствует если сообщение было отредактировано |
isEdited | boolean | Временно не работает. Флаг указывает редактировали ли сообщение |
isDeleted | boolean | Временно не работает. Флаг указывает удалили ли сообщение |
Поля объекта 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 | Количество пересылок сообщения |
videoNote | boolean | Поле для видео сообщений. Принимает значение true - для мгновенного видео сообщения и false для обычного видео сообщения |
Поля объекта extendedTextMessageData
:
Поле | Тип | Описание |
---|---|---|
text | string | Реакция (эмоджи) на сообщение |
Поля объекта pollMessageData
:
Поле | Тип | Описание |
---|---|---|
stanzaId | string | id сообщения с исходящим опросом. Присутствует только для typeMessage =pollUpdateMessage |
name | string | Текст опроса |
options | array | Массив данных о вариантах выбора. Присутствует только для typeMessage =pollMessage |
votes | array | Массив данных ответов. Присутствует только для typeMessage =pollUpdateMessage |
multipleAnswers | boolean | Флаг о разрешении нескольких ответов |
Поля массива options
Параметр | Тип | Описание |
---|---|---|
optionName | string | Текст варианта выбора |
Поля массива votes
:
Параметр | Тип | Описание |
---|---|---|
optionName | string | Текст варианта выбора |
optionVoters | array | Массив идентификаторов проголосовавших аккаунтов |
Поля объекта quotedMessage
:
Поле | Тип | Описание |
---|---|---|
stanzaId | string | ID цитируемого сообщения |
participant | string | ID чата получателя |
typeMessage | string | Тип цитириуемого сообщения |
Остальные поля объекта
quotedMessage
заполняются в зависимости от типа цитируемого сообщения и идентичны полям описанных выше
Пример тела ответа#
Примеры тел ответа входящего сообщения#
Текстовое сообщение#
{
"type": "incoming",
"idMessage": "1234543554675687678979",
"timestamp": 1706522263,
"typeMessage": "textMessage",
"chatId": "12345678",
"textMessage": "Привет",
"senderId": "87654321",
"senderName": "Василиса Премудрая",
"senderContactName": "Василиса",
"deletedMessageId": "",
"editedMessageId": "",
"isEdited": false,
"isDeleted": false
}
Примеры тел ответа исходящего сообщения#
Текстовое сообщение#
{
"type": "outgoing",
"idMessage": "2755178760419",
"timestamp": 1755178760,
"typeMessage": "extendedTextMessage",
"chatId": "-68121877826296",
"textMessage": "Привет!",
"extendedTextMessage": {
"text": "Привет!",
"description": "",
"title": "",
"previewType": "None",
"jpegThumbnail": "",
"forwardingScore": 0,
"isForwarded": false
},
"statusMessage": "delivered",
"sendByApi": true,
"deletedMessageId": "",
"editedMessageId": "",
"isEdited": false,
"isDeleted": false
}
Ошибки GetMessage#
Перечень общих для всех методов ошибок смотрите в разделе Стандартные ошибки
Код HTTP | Идентификатор ошибки | Описание |
---|---|---|
400 | Bad Request Validation failed | Ошибка валидации |
400 | Validation failed. Details: 'idMessage' is not allowed to be empty | Ошибка валидации. Поле idMessage не должно быть пустым |
400 | Validation failed. Details: 'message id' must be at least 16 symbols | Ошибка валидации. Поле idMessage должно содержать минимум 16 символов |
400 | chatId not found | chatID не найдено. Какие могут быть причины: 1. Сообщение все еще находится в очереди сообщений, и система не успела его обработать. Вы можете запросить метод ShowMessagesQueue для проверки сообщений. |
400 | Message not found by id '{{idMessage}}' | IDMessage не найдено. Какие могут быть причины: 1. Сообщение все еще находится в очереди сообщений, и система не успела его обработать. Вы можете запросить метод ShowMessagesQueue для проверки сообщений. 2. Неверно указан чат, номер сообщения или инстанс на котором происходит запрос сообщения. |
Примеры кода#
import requests
url = "{{apiUrl}}/v3/waInstance{{idInstance}}/getMessage/{{apiTokenInstance}}"
payload = "{\r\n\"chatId\": \"12036304396\, \"idMessage\": \"1234543554675687678979\" \"r\n}"
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, json=payload)
print(response.text.encode('utf8'))
curl --location '{{apiUrl}}/v3/waInstance{{idInstance}}/getMessage/{{apiTokenInstance}}' \
--header 'Content-Type: application/json' \
--data-raw '{
"chatId": "12345678",
"idMessage": "BAE5F4886F6F2D05"
}'
var restTemplate = new RestTemplate();
var requestUrl = new StringBuilder();
requestUrl
.append({{apiUrl}})
.append("/v3/waInstance").append({{idInstance}})
.append("/getMessage/")
.append({{apiTokenInstance}});
var headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
var jsonBody = "{\"chatId\": \"12345678\",\"idMessage\": \"1234543554675687678979\"}";
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("/v3/waInstance").append({{idInstance}})
.append("/getMessage/")
.append({{apiTokenInstance}});
var response = Unirest.post(requestUrl.toString())
.header("Content-Type", "application/json")
.body("{\"chatId\": \"12345678\",\"idMessage\": \"1234543554675687678979\"}")
.asString();
System.out.println(response);
Sub GetMessage()
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}}/v3/waInstance{{idInstance}}/getMessage/{{apiTokenInstance}}"
' chatId - identifier of the personal or group chat whose message you want to receive, idMessage - message ID
RequestBody = "{""chatId"":""12345678"",""idMessage"":""1234543554675687678979""}"
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