This site is no longer updated.Go to new Conversational Cloud docs

$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;
        }