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

$sharedContext

Обновлено 15 декабря 2023

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

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

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

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

id
required
string <uuid>

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

userId
required
string <uuid>

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

projectShortName
required
string

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

sharedData
object <jsonb>

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

accountId
required
string <uuid>

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

{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "projectShortName": "string",
  • "sharedData": { },
  • "accountId": "3d07c219-0a88-45be-9cfc-91e9d095a1e9"
}

Лимиты

Размер объекта $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 в настройках своего браузера.