检查插槽中是否设置了“值”

时间:2019-02-09 10:57:16

标签: javascript alexa

我正在使用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();
    }
};

1 个答案:

答案 0 :(得分:0)

我会做这样的事情:

 var name = handlerInput.requestEnvelope.request.intent.slots.personName.value;
 var testValue= (name != undefined) ? true : false;