Встроенные переменные
При вызове скриптовых расширений, задаваемых в тегах if
, else
, elseif
, script
, а также в подстановках {{}}
в теле тегов реакций доступны следующие переменные:
Переменная | Описание |
---|---|
$client | Хранилище постоянных данных о текущем пользователе бота. |
$context | Структура, которая представляет текущий контекст обработки запроса и содержит ссылки на все остальные встроенные переменные, а также несколько специальных полей. |
$entities | Список всех сущностей NLU, распознанных в запросе пользователя. |
$injector | Набор свойств, указанных при публикации бота или подключении сценария. |
$parseTree | Объект, представляющий результат разбора входной фразы в соответствии с именованными паттернами и сущностями, а также результаты работы конвертеров. |
$request | Объект, в котором хранятся данные о запросе пользователя. |
$response | Объект для формирования ответа бота. |
$session | Хранилище данных о текущей сессии. |
$temp | Хранилище временных данных, время жизни которых ограничено временем обработки одного запроса. |
Обращение ко встроенным переменным
ECMAScript 5
-
В теге
script
обращайтесь к переменным напрямую:$session.example = "Example";
-
В JS-файлах и JS-действиях обращайтесь к переменным с помощью метода
$jsapi.context
:$jsapi.context().session.example = "Example";
ECMAScript 6
В среде ECMAScript 6 вы можете обращаться к переменным в теге scriptEs6
и JS-файлах.
В JS-действиях не поддерживается ECMAScript 6.
Переменные доступны в синхронных и асинхронных функциях.
Синхронные функции
Поддерживаются все переменные. Обращайтесь к ним напрямую:
$session.example = "Example";
Асинхронные функции
Поддерживаются только переменные $session
и $client
.
-
Запись значения в переменную:
$session.example = "Example";
-
Получение значения из переменной:
var example = await $session.example;
В статье Поддержка ECMAScript 6 в JAICP вы можете узнать подробнее об использовании этих переменных в асинхронных функциях.