Предусмотрите обработку ситуаций, когда смартап не понимает запрос пользователя, т.к. запрос относится к другому смартапу.
Например, если пользователь сделает голосовой запрос «ТВ-каналы», находясь внутри другого смартапа, то ассистент не поймет, что пользователь хочет включить именно ТВ-каналы. В этому случае обрабатывать реплику пользователя будет ваш сценарий.
Чтобы подобные голосовые запросы обрабатывались не сценарием вашего смартапа, а самим ассистентом, нужно отправить ассистенту сообщение с типом NOTHING_FOUND. В этом случае ассистент сможет открыть другое приложение по запросу пользователя.
$response.replies = $response.replies || [];
$response.replies.push({
type: 'raw',
messageName: 'NOTHING_FOUND',
body: {},
});
Подробнее о синтаксисе NOTHING_FOUND.
Обработка отдельных запросов
Если запрос пользователя был обработан вне сценария, то будущие запросы так же будут обрабатываться ассистентом. Для возврата в контекст сценария, смартап нужно перезапустить.
Чтобы конкретный запрос пользователя обрабатывался вне сценария смартапа, в Graph нужно:
- Создать глобальный Блок Интент.
- Добавить нужную фразу и сохранить блок.
- Создать Блок JS Код со следующим кодом:
$response.replies = $response.replies || [];
$response.replies.push({
type: 'raw',
messageName: 'NOTHING_FOUND',
body: {},
});