Получение сообщений
Этот метод позволяет вашему серверу прочитать ответное сообщение пользователя в чате.
Например, после отправки пользователю HSM-сообщения с кнопками чата, при нажатии одной из кнопок возвращается параметр
payload
— код кнопки, указанный при создании шаблона HSM-сообщения.
Вы можете протестировать отправку сообщений с помощью API edna Pulse для канала WhatsApp, не регистрируя канал
Тестирование API канала WhatsAppURL-адрес подключения
Адрес должен начинаться с 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
}
Cообщения-реакции, полученного в ответ на сообщение с интерактивным меню
{
"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
}
Callback для входящих сообщений с параметром 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
}
Callback для входящих сообщений со значением FLOW
в параметре messageContent.type
[
{
"id": 101,
"subject": "test_subject_WA",
"subjectId": 50520,
"subscriber": {
"id": 4633047,
"identifier": "79997776655"
},
"userInfo": {
"userName": "Иван Иванов",
"firstName": null,
"lastName": null,
"avatarUrl": null
},
"messageContent": {
"type": "FLOW",
"attachment": null,
"location": null,
"referral": null,
"caption": null,
"text": "{\"flow_token\":\"example\"}",
"payload": null,
"story": null,
"items": null,
"contact": null,
"product": null,
"catalog": null,
"order": null
},
"receivedAt": "2025-03-25T12:12:12Z",
"replyOutMessageId": null,
"replyOutMessageExternalRequestId": null,
"replyInMessageId": null
}
]
[
{
"id": 101,
"subject": "test_subject_WA",
"subjectId": 50520,
"subscriber": {
"id": 4633047,
"identifier": "79997776655"
},
"userInfo": {
"userName": "Иван Иванов",
"firstName": null,
"lastName": null,
"avatarUrl": null
},
"messageContent": {
"type": "FLOW",
"attachment": null,
"location": null,
"referral": null,
"caption": null,
"text": "{\"screen_0_Name_0\":\"Ivan\",\"screen_0_Order_number_1\":\"6\",\"screen_0_Choose_a_topic_2\":\"0_order\",\"flow_token\":\"example\"}",
"payload": null,
"story": null,
"items": null,
"contact": null,
"product": null,
"catalog": null,
"order": null
},
"receivedAt": "2025-03-25T12:12:12Z",
"replyOutMessageId": null,
"replyOutMessageExternalRequestId": null,
"replyInMessageId": null
}
]
Параметры запроса
Параметр | Тип данных | Описание |
---|---|---|
id | long | Идентификатор запроса. |
subject | string | Название подписи. |
subjectId | long | Идентификатор подписи. Можно узнать через метод получения списка каналов. |
subscriber | object | Информация об отправителе сообщения. |
subscriber.id | long | Идентификатор. |
subscriber.identifier | string | Номер телефона. |
userInfo | object | Информация о пользователе. |
userInfo.userName | string | Имя. |
userInfo.firstName | string | Фамилия. |
userInfo.lastName | string | Отчество. |
userInfo.avatarUrl | string | Аватар. |
messageContent | object | Информация о сообщении. |
messageContent.text | string (optional) | Текст сообщения. При использовании WhatsApp Flows в этом параметре будет приходить информация о Flow. developers.facebook.com |
Тип сообщения. Возможные значения:- TEXT — текстовое сообщение;- IMAGE — изображение;- DOCUMENT — документ, вложенный в сообщение;- VIDEO — сообщение, содержащее видео;- AUDIO — сообщение, содержащее звук;- PRODUCT — сообщение, содержащее товар;- ORDER — сообщение, содержащее заказ;- LIST_PICKER — кнопки интерактивного ме ню WhatsApp;- FLOW — сообщение, содержащее WhatsApp Flows. WhatsApp Flows | ||
text | string | Обязательный, если contentType = TEXT , AUTHENTICATION или FLOW |
messageContent.caption | string (optional) | Название. |
messageContent.payload | string (optional) | Код кнопки. Указывается при создании HSM-шаблона. |
messageContent.items | object | Набор параметров, которые возвращаются в ответном сообщении от клиента, когда он реагирует на сообщение с интерактивным меню. Если сообщение клиента обычное (например, текст) и не является реакцией на сообщение с интерактивным меню, параметр возвращается следующим образом: messageContent.items = null . |
messageContent.items.title | string (required) | Название элемента исходного интерактивного меню. |
messageContent.items.subtitle | string (optional) | Подзаголовок элемента исходного интерактивного м еню. |
messageContent.items.identifier | integer (optional) | Сквозной для всего сообщения ID элемента, вернется в ответном сообщении пользователя. |
messageContent.location | object (optional) | Адрес локации. |
messageContent.attachment | object (optional) | null или данные документа. |
messageContent.attachment.url | string (optional) | URL прикрепленного изображения, документа или видео. |
messageContent.attachmentname | string (optional) | Название прикрепленного изображения, документа или видео. |
messageContent.attachmentsize | string (optional) | Размер. |
messageContent.contact | object (optional) | Карточка контакта, состоящая из полей: имя, фамилия, мобильный телефон. |
contact.firstName | string (optional) | Имя в карточке контакта. |
contact.lastName | string (optional) | Фамилия в карточке контакта. |
contact.phoneNumber | string (optional) | Мобильный телефон в карточке контакта. |
receivedAt | string | Дата и время получения. |
replyInMessageId | long | Внутренний идентификатор цитируемого сообщения пользователя. Пользователь цитирует своё сообщение, отправленное к омпании. |
replyOutMessageId | long | Внутренний идентификатор цитируемого сообщения компании. Пользователь цитирует сообщение, полученное от компании. |
replyOutMessageExternalRequestId | long | Внешний идентификатор цитируемого сообщения компании, который она указывает при отправке исходящего сообщения по API. В том случае, если пользователь процитировал сообщение, полученное от компании. |
Вы можете дополнить набор элементов, которые возвращаются в результате запроса. Для этого используйте необходимые элементы из списка
Параметры ответа
Параметр | Тип данных | Описание |
---|---|---|
messageContent.referral | object | Информация, полученная по скрытой от пользователя ссылке или из рекламного объявления |
messageContent.referral.body | string | Текст объявления, связанный с сообщением. |
messageContent.referral.headline | string | Заголовок объявления, связанный с сообщением. |
messageContent.referral.sourceId | string | Идентификатор объявления или публикации в Facebook*. |
messageContent.referral.sourceType | string | Тип источника объявления. Возможные значения: - ad — объявление - post — публикация |
messageContent.referral.sourceUrl | string | URL-адрес объявления, которое просмотрел пользователь. |
* Деятельность компании Meta запрещена на территории Российской Федерации.