ym88659208ym87991671
$sharedContext | Документация для разработчиков

$sharedContext

Обновлено 19 февраля 2025

Объект, который хранит данные сессии неаутентифицированного пользователя и обеспечивает доступ к ним после аутентификации.

Идентификация пользователя до авторизации выполняется на основе данных об устройстве, на котором запущен смартап. Таким образом данные из переменной $sharedContext сохраняются только в рамках устройства.

Переменная недоступна в тестовом виджете. Для тестирования Chat App используйте эмулятор.

Структура объекта

    id
    uuid
    required

    Идентификатор записи

    userId
    uuid
    required

    Идентификатор пользователя. Не изменяется после авторизации

    projectShortName
    string
    required

    Идентификатор проекта

    sharedData
    jsonb

    Контекстные данные запущенного смартапа в формате произвольного JSON-объекта

    accountId
    uuid
    required

    Идентификатор пространства

Лимиты

Размер объекта $sharedContext ограничен мягким и жестким лимитам в 100 Кб и 1000 Кб соотвественно.

При достижении мягкого лимита в сценарий передается событие sharedDataSoftLimitExceeded:

event: sharedDataSoftLimitExceeded

При этом данные контекста продолжат сохраняться до достижения жесткого лимита. При достижении жесткого лимита в сценарий передается событие sharedDataHardLimitExceeded:

event: sharedDataHardLimitExceeded

При этом данные перестают сохраняться в объекте $sharedContext.

Пример

theme: /

state:
q: * *start
go!: /start

state: start
q!: *
script:
$sharedContext.sharedData = $parseTree.text // сохраняем данные сессии
a: Вы сказали: {{$sharedContext.text}}.

state:
event: sharedDataSoftLimitExceeded // обрабатываем событие о достижении мягкого лимита
script:
delete $sharedContext.sharedData; // при достижении мягкого лимита данные активного смартапа удаляются
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.