Перейти к основному содержимому

Встроенные переменные

При вызове скриптовых расширений, задаваемых в тегах 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 вы можете узнать подробнее об использовании этих переменных в асинхронных функциях.