Вебхук 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":"hhtp://...",
"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