ym88659208ym87991671
Обмен данными при запуске Canvas App | Документация для разработчиков

Обмен данными при запуске Canvas App

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

Приложение можно запустить как с помощью голосовой команды, так и по нажатию на кнопку в каталоге.

По голосовой команде ассистент передает в сценарий запрос MESSAGE_TO_SKILL с интентом (поле payload.intent) run_app.

При запуске по кнопке в каталоге ассистент передает запрос RUN_APP, который содержит поле payload.server_action.action_id (по умолчанию run_app).

Схема запуска приложения по голосовой команде:

Сценарий демо-приложения обрабатывает команду запуска следующим образом:

/src/scenario/scenario.ts
const scenarioWalker = createScenarioWalker({
systemScenario: createSystemScenario({
//Сообщение о запуске смартапа
RUN_APP: runAppHandler,
NO_MATCH: noMatchHandler,
}),
userScenario,
});

Для обработки сообщения сценария используется функция runAppHandler:

/src/scenario/handlers.ts
export const runAppHandler: SaluteHandler = ({ res, req }) => {
//Добавляет подсказки в чат с пользователем
res.appendSuggestions(['Запиши купить молоко', 'Добавь запись помыть машину']);
//Реплика, которую произнесет ассистент
res.setPronounceText('начнем');
//Реплика, которая отобразится в чате с пользователем
res.appendBubble('Начнем');

//Добавление начального списка дел
res.appendCommand<SetInitialNotesCommand>({
type: 'set_initial_notes',
payload: data.notes,
});

const { device } = req.request.payload;

//Выбор фронтенда, в зависимости от поверхности
res.overrideFrontendEndpoint(`${req.appInfo.frontendEndpoint}/${req.character}/@${getDeviceFamily(device)}`);
};
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.