Получение сообщений

Этот метод позволяет вашему серверу прочитать ответное сообщение пользователя в чате. Например, после отправки пользователю HSM-сообщения с чат-кнопками, при нажатии одной из кнопок возвращается параметр payload (код кнопки, указанный при создании шаблона HSM-сообщения).

Вы можете также протестировать получение сообщений на тестовый номер телефона с помощью API edna для канала WhatsApp, не регистрируя собственный канал. Для этого перейдите на вкладку Тестирование в разделе Интеграция.

URL-адрес подключения

Адрес должен начинаться с HTTPS (протокол HTTPS, порт 443).

Для чтения ответных сообщений пользователей в чатах укажите API Endpoint вашей системы в личном кабинете при регистрации, который будет обрабатывать входящие POST-запросы от API edna.

Примеры

Пример полученного текстового сообщения.

{
    "id": 101,
    "subject": "test_subject_WA",
    "subjectId": 345,
    "subscriber": {
        "id": 202,
        "identifier": "79000000000"
    },
    "userInfo": {
        "userName": "alex",
        "firstName": null,
        "lastName": null,
        "avatarUrl": null
    },
    "messageContent": {
        "type": "TEXT",
        "attachment": null,
        "location": null,
        "caption": null,
        "text": "Спасибо за помощь",
        "payload": null,
        "story": null,
        "items": null
    },
    "receivedAt": "2022-04-29T15:30:08Z",
    "replyOutMessageId": 5043874,
    "replyOutMessageExternalRequestId": "2c2dd5f1-5ad8-449d-9c38-b6bdf288f1e5",
    "replyInMessageId": null
}

Пример сообщения-реакции, полученного в ответ на сообщение с интерактивным меню.

{
    "id": 102,
    "subject": "test_subject_WA",
    "subjectId": 345,
    "subscriber": {
        "id": 202,
        "identifier": "79000000000"
    },
    "userInfo": {
        "userName": "alex",
        "firstName": null,
        "lastName": null,
        "avatarUrl": null
    },
    "messageContent": {
        "type": "LIST_PICKER",
        "attachment": null,
        "location": null,
        "caption": null,
        "text": null,
        "payload": null,
        "story": null,
        "items": [
            {
                "identifier": "01",
                "title": "item 1",
                "subtitle": null
            }
        ]
    },
    "receivedAt": "2022-04-29T15:27:40Z",
    "replyOutMessageId": null,
    "replyOutMessageExternalRequestId": null,
    "replyInMessageId": 537701
}

Пример входящего сообщения со значением PRODUCT в параметре messageContent.type.

{
    "id": 803101,
    "subject": "test_subject_WA",
    "subjectId": 47610,
    "subscriber": {
        "id": 4633047,
        "identifier": "79997776655"
    },
    "userInfo": {
        "userName": "Иван Иванов",
        "firstName": null,
        "lastName": null,
        "avatarUrl": null
    },
    "messageContent": {
        "type": "PRODUCT",
        "attachment": null,
        "location": null,
        "caption": null,
        "text": "Hello",
        "payload": null,
        "story": null,
        "items": null,
        "contact": null,
        "product": {
            "id": "321",
            "catalogId": "123"
        },
        "catalog": null,
        "order": null
    },
    "receivedAt": "2024-08-05T08: 24: 14Z",
    "replyOutMessageId": null,
    "replyOutMessageExternalRequestId": null,
    "replyInMessageId": null
} 

Пример входящего сообщения со значением ORDER в параметре messageContent.type.

{
    "id": 804201,
    "subject": "test_subject_WA",
    "subjectId": 47610,
    "subscriber": {
        "id": 4633047,
        "identifier": "79997776655"
    },
    "userInfo": {
        "userName": "Иван Иванов",
        "firstName": null,
        "lastName": null,
        "avatarUrl": null
    },
    "messageContent": {
        "type": "ORDER",
        "attachment": null,
        "location": null,
        "caption": null,
        "text": null,
        "payload": null,
        "story": null,
        "items": null,
        "contact": null,
        "product": null,
        "catalog": null,
        "order": {
            "catalogId": "1022121105031922",
            "products": [
                {
                    "id": "111222",
                    "quantity": 2,
                    "price": 5,
                    "currency": "RUB"
                }
            ]
        }
    },
    "receivedAt": "2024-08-05T12:44:22Z",
    "replyOutMessageId": null,
    "replyOutMessageExternalRequestId": null,
    "replyInMessageId": null
} 

Пример колбэка для входящего сообщения с параметром referral. Позволяет получать информацию о месте, в котором клиент начал диалог в WhatsApp.

{
    "id": 115611,
    "subject": "test_WA",
    "subjectId": 195,
    "subscriber": {
        "id": 1111111,
        "identifier": "79000000000"
    },
    "userInfo": {
        "userName": "Anna",
        "firstName": null,
        "lastName": null,
        "avatarUrl": null
    },
    "messageContent": {
        "type": "TEXT",
        "attachment": null,
        "location": null,
        "referral": {
            "body": "This is a great product",
            "headline": "Our new product",
            "sourceId": "123",
            "sourceType": "ad",
            "sourceUrl": "https://www.fb.com"
        },
        "caption": null,
        "text": "text for test",
        "payload": null,
        "story": null,
        "items": null,
        "contact": null,
        "product": null,
        "catalog": null,
        "order": null
    },
    "receivedAt": "2024-01-11T11:20:00Z",
    "replyOutMessageId": null,
    "replyOutMessageExternalRequestId": null,
    "replyInMessageId": null
}

Параметры запроса

ПараметрТип данныхОписание
idlongИдентификатор запроса.
subjectstringНазвание подписи.
subjectIdlongИдентификатор подписи. Можно узнать через метод получения списка каналов.
subscriberobject Информация об отправителе сообщения.
subscriber.idlongИдентификатор.
subscriber.identifierstringНомер телефона.
userInfoobjectИнформация о пользователе.
userInfo.userNamestringИмя.
userInfo.firstNamestringФамилия.
userInfo.lastNamestringОтчество.
userInfo.avatarUrlstringАватар.
messageContentobjectИнформация о сообщении.
messageContent.textstring
(optional)
Текст сообщения.
messageContent.typestringОпределяет тип сообщения. Может быть текст, кнопка, изображение, документ, аудио, видео, заказ или товар.
messageContent.captionstring
(optional)
Название.
messageContent.payloadstring
(optional)
Код кнопки. Указывается при создании HSM-шаблона.
messageContent.itemsobjectНабор параметров, которые возвращаются в ответном сообщении от клиента, когда он реагирует на сообщение с интерактивным меню. Если сообщение клиента обычное (например, текст) и не является реакцией на сообщение с интерактивным меню, параметр возвращается следующим образом: messageContent.items = null.
messageContent.items.titlestring (required)Название элемента исходного интерактивного меню.
messageContent.items.subtitlestring (optional)Подзаголовок элемента исходного интерактивного меню.
messageContent.items.identifierinteger (optional)Сквозной для всего сообщения ID элемента, вернется в ответном сообщении пользователя.
messageContent.locationobject (optional)Адрес локации.
messageContent.attachmentobject (optional)null или данные документа.
messageContent.attachment.urlstring
(optional)
URL прикрепленного изображения, документа или видео.
messageContent.attachmentnamestring
(optional)
Название прикрепленного изображения, документа или видео.
messageContent.attachmentsizestring
(optional)
Размер.
messageContent.contactobject (optional)Карточка контакта, состоящая из полей: имя, фамилия, мобильный телефон.
contact.firstNamestring
(optional)
Имя в карточке контакта.
contact.lastNamestring
(optional)
Фамилия в карточке контакта.
contact.phoneNumberstring
(optional)
Мобильный телефон в карточке контакта.
receivedAtstringДата и время получения.
replyInMessageIdlongВнутренний идентификатор цитируемого сообщения пользователя. Пользователь цитирует своё сообщение, отправленное компании.
replyOutMessageIdlongВнутренний идентификатор цитируемого сообщения компании. Пользователь цитирует сообщение, полученное от компании.
replyOutMessageExternalRequestIdlongВнешний идентификатор цитируемого сообщения компании, который она указывает при отправке исходящего сообщения по API. В том случае, если пользователь процитировал сообщение, полученное от компании.
Вы можете дополнить набор элементов, которые возвращаются в результате запроса. Для этого используйте необходимые элементы из списка.

Параметры ответа

ПараметрТип данныхОписание
messageContent.referralobjectИнформация, полученная по скрытой от пользователя ссылке или из рекламного объявления (Viber Bot, WhatsApp).
messageContent.referral.bodystringТекст объявления, связанный с сообщением.
messageContent.referral.headlinestringЗаголовок объявления, связанный с сообщением. 
messageContent.referral.sourceIdstringИдентификатор объявления или публикации в Facebook*.
messageContent.referral.sourceTypestringТип источника объявления. Возможные значения:
ad — объявление;
post — публикация.
messageContent.referral.sourceUrlstringURL-адрес объявления, которое просмотрел пользователь.
* Деятельность компании Meta запрещена на территории Российской Федерации.