Используйте этот метод, чтобы запросить историю сообщений получателя.
Метод запроса истории сообщений
С помощью этого метода ПО пользователя запрашивает историю сообщений получателя. Запрос выполняется через публичный интерфейс API с авторизацией по API-ключу.
Если запрос выполнен успешно, метод возвращает ответ с кодом 200
и JSON-объект с текстом и информацией о сообщении. В случае неуспешного выполнения запроса метод возвращает сообщение с кодом ошибки.
URL-адрес подключения
Для отправки сообщения отправьте POST-запрос на URL-адрес: https://app.edna.ru/api/messages/history.
Формат запроса
В теле запроса передаются идентификатор получателя и необходимые фильтры.
{ "offset": 0, "limit": 0, "sort": [ { "direction": "ASC", "property": "SMS" } ], "subscriberFilter": { "address": "79000000000", "type": "EDNA_ID" }, "dateFrom": "2023-07-20T11:57:02.074Z", "dateTo": "2023-07-20T11:57:02.074Z", "channelTypes": [ "SMS" ], "direction": "OUT", "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": { "address": "79000000000", "type": "PHONE" }, "channelTypes": ["WHATSAPP"], "direction": "IN", "subjectId": 20526, "dateFrom": "2023-06-01T00:00:00Z", "dateTo": "2023-06-12T00:00:00Z", "limit": 12, "offset": 1, "sort": [{"property": "messageId", "direction": "ASC"}] }
Параметры запроса
Параметр | Тип данных | Обязательный | Описание |
subscriberFilter | object | да | Фильтр получателя. |
subscriberFilter. | string | да | Адрес получателя. Например, номер телефона. |
subscriberFilter. | array of Enums | да | Тип адреса получателя: PHONE, EMAIL, UTM, COOKIE_ID, INSTAGRAM_ID, FACEBOOK_ID, TELEGRAM_ID, GOOGLE_ID, APPLE_ID, YANDEX_ID, EXT_USER_ID. |
dateFrom | datetime | нет | Время, с которого запрашиваются сообщения. По умолчанию — сообщения за последний год. |
dateTo | datetime | нет | Время, по которое запрашиваются сообщения. По умолчанию — без ограничений. |
channelTypes | array of Enums | нет | Фильтр типа канала: WHATSAPP, SMS, VIBER, PUSH. Например, если передано значение PUSH, возвращается контент сообщения только для push-канала. Можно передать несколько значений. |
direction | string | нет | Направление сообщения: от получателя (IN) или получателю (OUT). |
trafficType | array of Enums | нет | Тип трафика: AD, SERVICE, HSM, CHAT. Значение — OUT. |
subjectID | string | нет | Идентификатор подписи. |
offset | integer | нет | Количество сообщений, которые нужно пропустить после сортировки. По умолчанию — 0. |
limit | integer | нет | Максимальное количество сообщений в ответе. По умолчанию — 15. Максимум — 100. |
sort | string | нет | Параметры сортировки. |
sort.direction | array of Enums | нет | Направление сортировки: ASC или DESC. По умолчанию — DESC. Используется только с параметром sort.property . |
sort.property | string | нет | Параметр для сортировки. Для сортировки можно использовать значение любого параметра из примера ответа. |
Формат ответа
Этот метод возвращает JSON-объект, содержащий все сообщения, отправленные пользователю или полученные от него, которые отвечают заданным условиям, а также дополнительную информацию об этих сообщениях.
Пример ответа
{ "content": [ { "messageId": 2945744, "tenantId": 549, "channelType": "SMS", "direction": "OUT", "address": "79000000000", "content": "{\"text\": \"Hello. Glad o see\", \"type\": \"TEXT\"}", "deliveryStatus": "UNDELIVERED", "deliveryStatusAt": "2022-10-18T21:12:37Z", "deliveryStatusMessage": "unrouted", "sentOrReceivedAt": "2022-10-18T21:12:34.223452Z", "subjectId": 284, "subjectName": "subject_sms", "cascadeId": 427, "cascadeName": "New channel", "cascadeStageUuid": "37549bb8-b343-4a3b-99a5-a23ce83ec66a", "trafficType": "AD", "segments": 1, "subscriberId": 2399569, "replyInMessageId": 537701 }, { "messageId": 2946294, "tenantId": 549, "channelType": "SMS", "direction": "OUT", "address": "79000000000", "content": "{\"text\": \"Hello. Glad o see\", \"type\": \"TEXT\"}", "deliveryStatus": "SENT", "deliveryStatusAt": "2022-10-18T21:14:18Z", "sentOrReceivedAt": "2022-10-18T21:14:15.358104Z", "subjectId": 284, "subjectName": "subject_sms", "cascadeId": 427, "cascadeName": "New channel", "cascadeStageUuid": "37549bb8-b343-4a3b-99a5-a23ce83ec66a", "trafficType": "AD", "segments": 1, "subscriberId": 2399569, "replyOutMessageId": 5043874, "replyOutMessageExternalRequestId": "2c2dd5f1-5ad8-449d-9c38-b6bdf288f1e5" } ], "number": 0, "size": 15, "hasNext": false }
Параметры ответа
Параметр | Описание |
messageId | Внутренний идентификатор сообщения. |
tenantId | Идентификатор личного кабинета пользователя. |
channelType | Тип канала. |
direction | Направление сообщения: входящее или исходящее. |
address | Адрес отправителя для входящих и получателя для исходящих сообщений. |
content | Текст сообщения. |
deliveryStatus | Статус доставки сообщения. |
deliveryStatusAt | Дата и время статуса доставки. |
deliveryStatusMessage | Сообщение статуса доставки. |
sentOrReceivedAt | Дата и время отправки для исходящих и доставки для входящих сообщений. |
subjectId | Идентификатор подписи. |
subjectName | Имя подписи. |
cascadeId | Идентификатор каскада. |
cascadeName | Имя каскада. |
cascadeStageUuid | Номер шага каскада. |
broadcastId | Идентификатор рассылки. |
broadcastName | Имя рассылки. |
trafficType | Тип трафика. |
segments | Количество сегментов сообщения. |
subscriberId | Идентификатор получателя в edna Pulse. |
comment | Параметр comment можно передавать при отправке сообщений. Он может служить для уникальной идентификации сообщения или рассылки. |
number | Номер страницы. |
size | Количество элементов в ответе. |
hasNext | Флаг наличия следующей страницы. |
replyInMessageId | Внутренний идентификатор цитируемого сообщения пользователя. Пользователь цитирует своё сообщение, отправленное компании. |
replyOutMessageId | Внутренний идентификатор цитируемого сообщения компании. Пользователь цитирует сообщение, полученное от компании. |
replyOutMessageExternalRequestId | Внешний идентификатор цитируемого сообщения компании, который она указывает при отправке исходящего сообщения по API. В том случае если пользователь процитировал сообщение, полученное от компании. |
Список ошибок
Метод вернет сообщение об ошибке 400 Bad Request
и JSON-объект с описанием в следующих случаях:
- указан неверный API-ключ;
- не указан обязательный параметр
address
; - указано значение
limit
больше 100; - указана дата
dateFrom
более чем за 1 год до текущей.