Есть ли способ временно перенаправить из одного намерения в другое, чтобы заполнить слоты или атрибуты сеанса, а затем вернуться к первоначальному намерению, на которое нужно ответить или выполнить?
Мой пример использования - запрос PIN-кода учетной записи в качестве дополнительной аутентификации после привязки учетной записи. Например, если кто-то спросит «Каковы данные моей учетной записи?», Я хочу, чтобы это намерение изменилось в атрибутах сеанса, если оно существует, а если нет, временно перенаправить на намерение, которое будет запрашивать у них ПИН-код и устанавливать его ... затем вернитесь и ответьте на запрос данных своего аккаунта. Аналогичен примеру ниже:
const IntentHandler = {
canHandle(input) {
return (
input.requestEnvelope.request.type === 'IntentRequest' &&
input.requestEnvelope.request.intent.name === 'MyIntent'
},
handle(input) {
const { accessToken } = input.requestEnvelope.context.System.user
// ... do stuff with accessToken
if (!input.attributesManager.getSessionAttributes().pin) {
// redirect to other intent to set the pin session attribute
}
// ...response to intent request
}
}
Я могу заставить это работать с одним намерением, используя подсказки заполнения слотов, но это общая задача для нескольких намерений, и я хотел бы отделить ее, чтобы ее не нужно было настраивать в консоли для всех, кто этого требует.
К вашему сведению: использование ask-sdk
для Node.js
Возможно ли это с текущей версией ask-sdk
?