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

$session

Объект для сохранения произвольных данных о текущей сессии.

После выполнения реакций бота содержимое $session сохраняется во внутренней базе данных и хранится между запросами пользователя. При завершении сессии эти данные очищаются.

предупреждение
Существует ограничение на объем хранящихся данных в объекте $session. При превышении лимита текущий сценарий прерывается, бот перестает отвечать пользователю.

Специальные поля

  • contextPath — текущий контекст диалога, предназначен для внутреннего использования платформой. По этому полю восстанавливается контекст беседы при следующем запросе клиента.

Примеры использования

  • Сохранение имени пользователя:
require: name/name.sc
module = sys.zb-common

theme: /

state: Hello
q!: * меня зовут $Name *
script:
$session.name = $parseTree._Name.name;
a: Привет, {{$session.name}}!
  • Сохранение и вывод случайного числа:
state: Game
script:
$session.number = $jsapi.random(100) + 1;
a: Я загадывал число {{$session.number}}.
go!: /Check
  • Сохранение введенного количества товара в переменной $session.quantity и добавление параметров в массив $session.cart:
state: GetQuantity
script:
$session.cart = [];
$session.quantity = parseInt($request.query);
$session.cart.push({name: $session.pizzaName, id: $session.pizzaId, quantity: $session.quantity});
a: Хотите ли выбрать что-нибудь еще, или перейдем к оформлению заказа?
  • Сохранение идентификатора диалога в зависимости от типа канала:
state: ChatId
script:
if ($request.channelType.indexOf("chatwidget") > -1) {
$session.chatId = $request.channelUserId;
} else {
$session.chatId = $request.data.chatId;
}