Получение истории сообщений
Для запроса на получение истории сообщений получателя используется метод api/messages/history.
Вызов метода api/messages/history
Чтобы вызвать метод api/messages/history, отправьте POST-запрос на URL-адрес https://app.edna.ru/api/messages/history
Если запрос выполнен успешно, метод возвращает ответ с кодом 200 и JSON-объект с текстом и информацией о сообщении. Если запрос выполнен неуспешно, метод возвращает код ошибки.
Формат тела запроса
{
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"offset": 0,
"limit": 0,
"channelTypes": [
"SMS"
],
"messageId": 567890,
"direction": "OUT",
"dateFrom": "2024-07-01T00:00:00Z",
"dateTo": "2024-07-22T00:00:00Z",
"sort": [
{
"property": "messageId",
"direction": "DESC"
}
],
"trafficTypes": [
"AD"
],
"subjectId": 0
}
Пример запроса
POST https://app.edna.ru/api/messages/history
x-api-key: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Тело запроса с параметром subscriberFilter
{
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"offset": 0,
"limit": 1000,
"channelTypes": [
"SMS"
],
"messageId": 567891,
"direction": "OUT",
"dateFrom": "2024-07-01T00:00:00Z",
"dateTo": "2024-07-22T00:00:00Z",
"sort": [
{
"property": "messageId",
"direction": "DESC"
}
],
"trafficTypes": [
"AD"
],
"subjectId": 50192
}
Тело запроса без параметра subscriberFilter
{
"offset": 0,
"limit": 1000,
"channelTypes": [
"SMS"
],
"direction": "OUT",
"dateFrom": "2024-07-01T00:00:00Z",
"dateTo": "2024-07-22T00:00:00Z",
"sort": [
{
"property": "messageId",
"direction": "DESC"
}
],
"trafficTypes": [
"AD"
],
"subjectId": 50192
}
Параметры запроса
| Параметр | Тип данных | Характер | Описание |
|---|---|---|---|
subscriberFilter | object | Необязательный | Фильтр получателя. |
subscriberFilter.address | string | Необязательный | Адрес получателя. Например, номер телефона. |
subscriberFilter.type | string | Необязательный | Тип адреса получателя:
|
offset | integer | Необязательный | Количество сообщений, которые нужно пропустить после сортировки. Значение по умолчанию — 0. |
limit | integer | Необязательный | Количество сообщений в ответе. Значение по умолчанию — 0, максимальное — 1000. |
channelTypes | array of strings | Необязательный | Тип канала:
|
direction | string | Обязательный, если используется параметр messageId | Направление сообщения.
|
dateFrom | string | Необязательный | Дата в формате ISO 8601 (например, dateFrom и оставьте пустым параметр dateTo.
(Опционально) В параметре limit укажите количество сообщений, которое вы хотите получить. |
dateTo | string | Необязательный | Дата в формате ISO 8601 (например, dateFrom и dateTo — 366 дней.
Чтобы получить все сообщения за последние 30 дней, укажите в параметре dateTo дату в промежутке последних 30 дней и оставьте пустым параметр dateFrom. Если в параметре dateTo указать дату позднее, чем 30 дней назад, и оставить пустым параметр dateFrom — в ответе будет пустой список.
(Опционально) В параметре limit укажите количество сообщений, которое вы хотите получить. |
sort | object | Необязательный | Параметры сортировки. |
sort.property | string | Необязательный | Значение параметра для сортировки. Можно использовать значение любого параметра из примера ответа. |
sort.direction | string | Необязательный | Направление сортировки:
|
trafficTypes | array of strings | Необязательный | Тип трафика при значении параметра
|
subjectID | integer | Необязательный | Идентификатор подписи. |
messageID | integer (long) | Необязательный | Внутренний идентификатор сообщения. |
Формат ответа
В ответ на запрос возвращается JSON-объект с сообщениями, отправленными пользователю или полученными от него согласно указанным условиям.
Пример ответа
{
"content": [
{
"messageId": 8270556,
"tenantId": 3193,
"channelType": "SMS",
"direction": "OUT",
"address": "79000000000",
"content": "{\"text\": \"Hello. Glad to see\", \"type\": \"TEXT\"}",
"deliveryStatus": "DELIVERED",
"deliveryStatusAt": "2024-07-23T08:08:20.000+0000",
"sentOrReceivedAt": "2024-07-23T08:08:20.201+0000",
"subjectId": 50192,
"subjectName": "subject_sms",
"cascadeId": 32522,
"cascadeName": "cascade_sms",
"cascadeStageUuid": "b75c5b32-d185-4784-aac0-ec3adc468a71",
"broadcastId": 318463,
"broadcastName": "cxzxzcxzcxz",
"trafficType": "AD",
"segments": 1,
"subscriberId": 11354769
},
{
"messageId": 8270515,
"tenantId": 3193,
"channelType": "SMS",
"direction": "OUT",
"address": "79000000001",
"content": "{\"text\": \"Hello. Glad to see\", \"type\": \"TEXT\"}",
"deliveryStatus": "DELIVERED",
"deliveryStatusAt": "2024-07-23T08:02:11.000+0000",
"sentOrReceivedAt": "2024-07-23T08:02:11.223+0000",
"subjectId": 50192,
"subjectName": "subject_sms",
"cascadeId": 32522,
"cascadeName": "cascade_sms",
"matcherId": 6199,
"matcherName": "serv_1",
"cascadeStageUuid": "b75c5b32-d185-4784-aac0-ec3adc468a71",
"broadcastId": 318462,
"broadcastName": "cxvzxc",
"trafficType": "SERVICE",
"segments": 1,
"subscriberId": 11354769
}
],
"hasNext": false
}
Параметры ответа
| Параметр | Тип данных | Описание |
|---|---|---|
content | array of objects | Массив передаваемых сообщений. |
content.messageId | integer | Внутренний идентификатор сообщения. |
content.tenantId | integer | Идентификатор личного кабинета пользователя. |
content.channelType | string | Тип канала |
content.direction | string | Направление сообщения.
|
content.address | string | Адрес отправителя для входящих и получателя для исходящих сообщений. |
content.content | string | Текст сообщения. При использовании WhatsApp Flows в этом параметре будет приходить информация о Flow:
|
content.deliveryStatus | string | Статус доставки сообщения. Возможные значения:
|
content.deliveryStatusAt | string | Дата и время статуса д оставки в формате ISO 8601 (например, |
content.deliveryStatusMessage | string | Сообщение статуса доставки. |
content.sentOrReceivedAt | string | Дата и время отправки исходящих сообщений и доставки входящих сообщений в формате ISO 8601 (например, |
content.subjectId | integer | Идентификатор подписи. |
content.subjectName | string | Имя подписи. |
content.cascadeId | integer | Идентификатор каскада. |
content.cascadeName | string | Имя каскада. |
content.cascadeStageUuid | string | Номер шага каскада. |
content.broadcastId | integer | Идентификатор рассылки. |
content.broadcastName | string | Имя рассылки. |
content.trafficType | array of strings | Тип трафика при значении параметра
|
content.segments | integer | Количество сегментов сообщения. |
content.subscriberId | integer | Идентификатор получателя в edna Pulse. |
content.matcherId | integer | Идентификатор шаблона, по которому отправлялись сообщения при значении параметра direction:OUT. |
content.matcherName | string | Название шаблона, по которому отправлялись сообщения при значении параметра direction:OUT. |
content.comment | string | Комментарий к сообщению. Параметр |
hasNext | boolean | Флаг наличия следующей страницы. |
content.replyInMessageId | integer | Внутренний идентификатор цитируемого сообщения пользователя. Пользователь цитирует свое сообщение, отправленное компании. |
content.replyOutMessageId | integer | Внутренний идентификатор цитируемого сообщения компании. Пользователь цитирует сообщение, полученное от компании. |
ExternalRequestId | integer | Внешний идентификатор цитируемого сообщения компании, который она указывает при отправке исходящего сообщения по API. В том случае, если пользователь процитировал сообщение, полученное от компании. |
Ошибки
Возможные ошибки после вызова метод api/messages/history
| Код | Ошибка | Описание |
|---|---|---|
401 | Api-key not found | Указан неверный API-ключ. |
400 | not-valid-request | Указано пустое значение параметра address. |
400 | limit-not-valid | Указано значение больше 1000 в параметре limit. |
400 | date-range-not-valid | Диапазон значений между параметрами dateFrom и dateTo превышает 366 дней. |
400 | message-matcher-subject-not-found | Указан неверный идентификатор в значении параметра subjectId. |