$request
Переменная содержит данные запроса клиента.
Формат объекта
Формат объекта соответствует следующей структуре:
| Поле | Описание |
|---|---|
data |
Параметры запроса: livechatStatus, JustWidgetRawParams, isTestChannel, requestHeaders. |
requestType |
Тип запроса. |
version |
Версия протокола. По умолчанию последняя версия. |
botId channelBotId |
Идентификатор бота. |
accountId |
Идентификатор аккаунта. |
channelType |
Тип коммуникационного канала. |
channelUserId |
Идентификатор клиента. |
questionId |
Идентификатор запроса. |
query |
Текстовый запрос клиента. |
rawRequest |
Объект запроса в исходном виде для последующей обработки в сценарии. |
language |
Язык NLU для проекта. |
userFrom |
Данные о клиенте: id, firstName, lastName. |
Примеры использования
$request.channelType
Проверяем тип канала для перевода на оператора:
state: GoToOpeartor
script:
if ($request.channelType == 'telegram' || $request.channelType == 'chatwidget') {
$reactions.answer('Перевод на оператора')
} else {
$reactions.answer('Невозможно перевести на оператора')
}$request.botId и $request.channelUserId
Запрашиваем идентификатор бота и клиента для авторизации в банке:
state: TransferMoney
q!: * перевести деньги *
# Доступ к функции бота возможен только после авторизации клиента
script:
# Получение pushback-ссылки
$temp.securityToken = "ExampleToken";
var channelType = $request.channelType;
# Получение ID бота
var botId = $request.botId;
# Получение ID клиента
var chatId = $request.channelUserId;
# Название события
var event = "authEvent";
var eventData = {
"token": $temp.securityToken,
"someData": {
"smth": 1
}
};
$temp.pushgateResponse = $pushgate.createPushback(channelType, botId, chatId, event, eventData);
...$request.query
Отображаем в диалоге нераспознанный запрос клиента:
state: NoMatch
event!: noMatch
a: Я не понял. Вы сказали: {{$request.query}}`$request.data.requestHeaders
Поле $request.data.requestHeaders доступно только для каналов Чатвиджет, Aimybox и Chat API.
Получаем информацию о клиентском приложении:
state: RequestClientInfo
intent!: /info
a: {{ $request.data.requestHeaders['user-agent']}}Имена HTTP-заголовков в поле $request.data.requestHeaders приведены к нижнему регистру.
$request.rawRequest
Получаем телефонный номер клиента для обработки заказа:
state: GetPhoneNumber
event: telegramSendContact
script:
$client.phone_number = $request.rawRequest.message.contact.phone_number;
a: Спасибо! Наш менеджер свяжется с вами по номеру телефона {{$client.phone_number }}.