我正在使用Alexa应用程序迈出第一步。我想开发一个简单的意图,如果在插槽中设置了“值”,则使用人名{personName}进行回答。 但是,我无法理解以下代码的问题:由于启用了检查,即使输入的json正确,Alexa也无法理解请求。
我受到另一个关于输入验证Alexa input validation for type AMAZON.NUMBER using dialog model的StackOverflow问题的启发
const AnswerUserIntentHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'IntentRequest'
&& handlerInput.requestEnvelope.request.intent.name ==='AnswerUserIntent';
},
handle(handlerInput) {
var pNameObj = this.event.request.intent.slots.personName
var testValue = pNameObj.hasOwnProperty("value");
if (testValue) {
var speechText = 'You entered the intent with a value!';
}else{
var speechText = 'You just entered the intent';
}
return handlerInput.responseBuilder
.speak(speechText)
//.reprompt('add a reprompt if you want to keep the session open for the user to respond')
.getResponse();
}
};
答案 0 :(得分:0)
我会做这样的事情:
var name = handlerInput.requestEnvelope.request.intent.slots.personName.value;
var testValue= (name != undefined) ? true : false;