Позвольте мне попытаться объяснить мою ситуацию. У меня есть Intent FundTransfer, который спрашивает что-то вроде: «Вы хотите сделать перевод сейчас или позже?» Пользователь говорит позже.
Затем я перенаправляю к другому назначению для планирования передачи.
Код узла:
return handlerInput.responseBuilder
.addDelegateDirective({
name: "ScheduleTransferIntent",
confirmationStatus: "NONE",
slots: {}
})
.withShouldEndSession(false)
.getResponse();
ScheduleTransferIntent имеет 2 слота, scheduleDate и scheduleTime.
Я разрешаю Алексе обрабатывать эти слоты. У меня есть обработчик для не завершенного статуса,
const StartedInProgressScheduleTransferIntentHandler = {
canHandle(handlerInput) {
return (
handlerInput.requestEnvelope.request.type === "IntentRequest" &&
handlerInput.requestEnvelope.request.intent.name ===
"ScheduleTransferIntent" &&
handlerInput.requestEnvelope.request.dialogState !== "COMPLETED"
);
},
handle(handlerInput) {
return handlerInput.responseBuilder.addDelegateDirective().getResponse();
}
};
scheduleDate относится к типу Amazon.Date, и я сделал его обязательным.
Речевое приглашение Alexa: На какую дату я должен запланировать этот перевод?
Пользовательские высказывания: {scheduleDate}
Когда пользователь дает ответ, как завтра, я вижу, что значение заполняется, но Алекса снова задает тот же вопрос.
Теперь, если я добавлю новое пользовательское высказывание,
Пользовательские высказывания:
{scheduleDate}
в {scheduleDate}
А когда пользователь дает «на завтра», Алекса спрашивает время. Почему так себя ведет? Я не хочу добавлять текст перед моим ответом.
Обновление: когда я отвечаю «завтра», это работает, но когда я даю дату, это та же проблема. Но журнал устройства показывает значение, которое я заполнил
"payload": {
"skillId": null,
"timestamp": "2019-05-01T11:46:47.644Z",
"dialogRequestId": "5d2dc23b-899c-4656-9be4-65faf1df88ec",
"skillRequestId": null,
"type": "ConsideredIntents",
"content": {
"intents": [
{
"name": "ScheduleTransferIntent",
"confirmationStatus": "NONE",
"slots": {
"scheduleTime": {
"name": "scheduleTime",
"value": null,
"confirmationStatus": "NONE",
"encryptedValue": null
},
"scheduleDate": {
"name": "scheduleDate",
"value": "2019-09-25",
"confirmationStatus": "NONE",
"encryptedValue": null
}
}
}
]
}
}