Вебхук Message
Для синхронных ответов требуется тело ответа, а также должен возвращаться статус 200 (OK); для асинхронных ответов требуется статус 202 (Accepted).
Если от клиента приходит несколько сообщений одновременно в момент вызова вебхука, edna может отправить их как отдельные сообщения или как одно, включающее в себе тексты всех сообщений. По умолчанию сообщения отправляются по отдельности. Это поведение управляется настройкой bot.message.concat.
| Поле | Тип | Описание |
|---|---|---|
|
| MESSAGE |
|
| Сообщение клиента для обработки ботом |
|
| Внешний ID клиента (только для авторизованных клиентов). Этот параметр устарел, вместо него используйте |
|
| Внутренний ID клиента (подходит как для авторизованных, так и для неавторизованных клиентов) |
|
| Внутренний ID треда |
|
| Внутренний ID сообщения клиента в edna |
|
| Индекс сообщения клиента в треде |
|
| Информация о канале, в котором получено сообщение |
|
| Тип канала |
|
|
|
|
| Только для типа канала ( |
|
| Данные клиента |
| map<String, String> | Дополнительные параметры для изменения сегментации (используется как в пользовательских, так и в преднастроенных сегментах). Параметр сегментации |
|
| Время получения сообщения, дата в формате UTC: yyyy-MM-dd’T’HH:mm:ss.SSS’Z' |
|
|
|
|
| Информация об отправителе, всегда |
|
| Дополнительные настройки сообщения |
|
| Параметр, который указывает, заблокировано ли поле ввода сообщения ( |
|
| Параметр, который указывает, замаскированы ли цифры в связанном сообщении клиента ( |
|
| Отправляется боту при включенной функциональности распознавания голосовых сообщений |
|
| Распознанный текст голосового сообщения |
|
| Качество распознавания (число от 0 до 100) |
|
| Статус распознавания. Допустимые значения: |
|
| В этом поле передается код кнопки, которая была нажата, или ID элемента |
Пример HTTP запроса
POST <url for webhook message> HTTP/1.1
Content-Type: application/json
{
"action": "MESSAGE",
"threadsClientId": 1,
"sessionId": "1",
"questionId": 43,
"questionIndex": null,
"receivedAt": "2018-11-13T13:13:11.876Z",
"text": "Message",
"channelInfo": {
"channelType": "MOBILE",
"authorized": true
},
"platform": "Android",
"attachments": [
{
"url": "http://...",
"name": "test.jpg",
"type": "image/jpeg",
"size": 256
}
],
"clientData": {
"phone": "79000000000"
},
"sender": "ThreadsAPI"
}
Пример успешного HTTP ответа
Для синхронных ответов ожидается текст сообщения и статус 200 (OK);
для асинхронных ответов ожидается статус 202 (Accepted).
{
"action":"MESSAGE",
"threadsClientId":1,
"sessionId":"1",
"questionId":43,
"questionIndex":null,
"receivedAt":"2018-11-13T13:13:11.756Z",
"text":"Message",
"segmentationInfo": {
"key":"value"
},
"attachments":[
{
"url":"https://...",
"name":"test.jpg",
"type":"image/jpeg",
"size":256
}
],
"sender":"ThreadsAPI",
"settings" : {
"masked" : true
}
}