Используйте этот метод, чтобы запросить историю сообщений получателя.
Метод получения истории сообщений
С помощью этого метода ПО пользователя запрашивает историю сообщений получателя. Запрос выполняется через публичный интерфейс API с авторизацией по API-ключу.
Если запрос выполнен успешно, метод возвращает ответ с кодом 200
и JSON-объект с текстом и информацией о сообщении. В случае неуспешного выполнения запроса метод возвращает сообщение с кодом ошибки.
URL-адрес подключения
Для отправки сообщения отправьте POST-запрос на URL-адрес https://app.edna.ru/api/messages/history.
Формат запроса
В теле запроса передаются идентификатор получателя и необходимые фильтры.
{ "offset": 0, "limit": 0, "sort": [ { "direction": "ASC", "property": "string" } ], "subscriberFilter": { "address": "string", "type": "EDNA_ID" }, "dateFrom": "2023-07-20T11:57:02.074Z", "dateTo": "2023-07-20T11:57:02.074Z", "channelTypes": [ "SMS" ], "direction": "IN", "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. address | string | да | Адрес получателя. Например, номер телефона. |
subscriberFilter. type | 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, возвращается контент сообщения только для пуш-канала. Можно передать несколько значений. | |
direction | string | Направление сообщения: от получателя (IN) или получателю (OUT). | |
trafficType | array of Enums | Тип трафика: AD, SERVICE, HSM, CHAT. Можно передать несколько значений. | |
subjectID | string | Идентификатор подписи. | |
offset | integer | Количество сообщений, которые нужно пропустить после сортировки. По умолчанию — 0. | |
limit | integer | Максимальное количество сообщений в ответе. По умолчанию — 15. Максимум — 100. | |
sort | string | Параметры сортировки. | |
sort.direction | array of Enums | Направление сортировки: ASC или DESC. По умолчанию — DESC. | |
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 }, { "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 } ], "number": 0, "size": 15 }
Параметры ответа
Параметр | Описание |
---|---|
messageId | Внутренний идентификатор сообщения |
tenantId | Идентификатор личного кабинета пользователя |
channelType | Тип канала |
direction | Направление сообщения, входящее или исходящее |
address | Адрес отправителя для входящих и получателя для исходящих сообщений |
content | Текст сообщения |
deliveryStatus | Статус доставки сообщения |
deliveryStatusAt | Дата и время статуса доставки |
deliveryStatusMessage | Сообщение статуса доставки |
sentOrReceivedAt | Дата и время отправки для исходящих и доставки для входящих сообщений |
subjectId | Идентификатор подписи |
subjectName | Имя подписи |
cascadeId | Идентификатор каскада |
cascadeName | Имя каскада |
cascadeStageUuid | Номер шага каскада |
broadcastId | Идентификатор рассылки |
broadcastName | Имя рассылки |
trafficType | Тип трафика |
segments | Количество сегментов сообщения |
subscriberId | Идентификатор получателя в edna Pulse |
comment | Параметр comment можно передавать при отправке сообщений. Он может служить для уникальной индентификации сообщения или рассылки. |
Список ошибок
Метод вернет сообщение об ошибке 400 Bad Request
и JSON-объект с описанием в следующих случаях:
- указан неверный API-ключ
- не указан обязательный параметр
address
- указано значение
limit
больше 100 - указана дата
dateFrom
более чем за 1 год до текущей