$jsapi.chatHistoryJson
Метод $jsapi.chatHistoryJson()
возвращает подробную историю диалога в текущей сессии в формате JSON.
В этом формате вы можете отправлять историю в сторонние системы.
История — это список из различных сообщений:
Поля сообщения:
Поле | Описание |
---|---|
questionID | Идентификатор сообщения. Если бот реагирует на запрос пользователя или событие, то |
text | Текст сообщения. Поле отсутствует, если у сообщения нет текста. |
author | Автор:
|
status | Статус:
|
eventData | Данные, переданные вместе с событием. |
sendDateInUTC | Unix-время отправки по часовому поясу UTC. |
Примеры использования
Метод вызывается без аргументов.
- ECMAScript 5
- ECMAScript 6
state: historyJson
q: история диалога в формате JSON
a: {{ $jsapi.chatHistoryJson() }}
В среде ECMAScript 6 метод является асинхронным:
state: historyJson
q: история диалога в формате JSON
scriptEs6:
$reactions.answer(await $jsapi.chatHistoryJson());
Пример истории:
[
{
"questionId": "example1-0000-0000-0000-000000000000",
"text": "Как купить билет?",
"author": "CLIENT",
"status": "SENT",
"eventData": {},
"sendDateInUTC": 1713883656
},
{
"questionId": "example1-0000-0000-0000-000000000000",
"text": "Вы можете купить билет онлайн: https://example.com/buy",
"author": "BOT",
"status": "SENT",
"eventData": {},
"sendDateInUTC": 1713883656
},
{
"questionId": "example2-0000-0000-0000-000000000000",
"author": "CLIENT",
"status": "SENT",
"eventData": {
"example": "data"
},
"sendDateInUTC": 1713883656
}
]
В телефонном канале
В этом примере:
-
Бот отправляет историю через HTTP-запрос в стейте с событием
hangup
. Это событие приходит в сценарий, если пользователь сам завершил звонок. -
Если история успешно отправлена, бот добавляет комментарий в аналитику.
state: ClientHangUp
// Событие сработает, если пользователь завершит звонок
event!: hangup
script:
// Бот отправляет историю
$temp.response = $http.query("https://httpbin.org/post", {
method: "POST",
body: $jsapi.chatHistoryJson(),
dataType: "json"
});
// Бот добавляет комментарий в аналитику
if ($temp.response.isOk) {
$analytics.setComment("История отправлена");
};