$session
Объект для сохранения любых сессионных данных. При начале новой сессии все данные будут обнулены.
Время создания новой сессии определяется в сценарии с помощью тега newSession.
Существует ограничение на объем хранящихся данных в объектe $session. При превышении лимита текущий сценарий прерывается, бот перестает отвечать клиенту.
Специальные поля
contextPath— текущий контекст диалога, предназначен для внутреннего использования платформой. По этому полю восстанавливается контекст беседы при следующем запросе клиента.
Примеры использования
- Сохранение имени пользователя:
state: Hello
q!: * меня зовут $Name *
script:
$session.name = $Name
a: Привет, {{ $session.name }}!- Сохранение и вывод в виде сообщения случайного числа:
state: Game
script:
$session.number = $jsapi.random(100) + 1;
$reactions.answer("Загадано {{$session.number}}");
$reactions.transition("/Проверка");- Сохранение введенного количества товара в переменной
$session.quantityи добавление параметров в массив$session.cart:
state: GetQuantity
script:
$session.cart = [];
$session.quantity = parseInt($request.query);
$session.cart.push({name: $session.pizza_name, id: $session.pizza_id, quantity: $session.quantity});
a: Хотите ли выбрать что-нибудь еще, или перейдем к оформлению заказа?- Сохранение идентификатора чатвиджета в зависимости от выполненного условия:
state: chatId
script:
if ($request.channelType.indexOf("chatwidget") > -1) {
$session.chatId = $request.channelUserId;
} else {
$session.chatId = $request.data.chatId;
}