Alexa lamda在Node.JS中获取底层已解析的插槽值

时间:2019-06-19 10:33:21

标签: node.js alexa

我有一个名为“获取状态”的意图,它有一个YES_NO类型的let changeStatusSlot = handlerInput.requestEnvelope.request.intent.slots.SHOULDCHANGESTATUS.value; if(changeStatusSlot === 'no'){ return statusFunctions.closureMessage(handlerInput); } 插槽

我的Lambda中具有以下逻辑,使用Alexa Dev工具中的文本测试工具可以很好地运行。

SHOULDCHANGESTATUS

当我使用实际设备进行测试时,“ No”(否)字样会变成“ Naw”。

Yes_No插槽将“ naw”作为“否”的可接受类型,因此我应该能够处理此问题。

我需要更改handlerInput.requestEnvelope.request.intent.slots.SHOULDCHANGESTATUS.Resolution.Authorities[0].Values[0].Value.Name 插槽上的选择器以获取该插槽的基础值,该值应该为NO,但我无法使其正常工作。

我尝试过:

<HBox class="assetImgBlock">
    <VBox class="uploadAssets">
        <Image width="7rem" class="hdrTitl" src="./images/WearableProtection.jpeg" press="fnOpenUploader"></Image>
        Input value="Head"></Input>
    </VBox>
    <VBox class="uploadAssets">
        <Image width="7rem" class="hdrTitl" src="./images/Ladders.jpeg"></Image>
        <Input value="Body"></Input>
    </VBox>
    <VBox class="uploadAssets">
        <Image width="7rem" class="hdrTitl" src="./images/bucketSecured.jpeg"></Image>
        <Input value=""></Input>
    </VBox>
</HBox>

但出现未定义的错误。

1 个答案:

答案 0 :(得分:0)

我很近,解决方法是:

handlerInput.requestEnvelope.request.intent.slots['SHOULDCHANGESTATUS'].resolutions.resolutionsPerAuthority[0].values[0].value.name;

这个对象结构帮助我找到了我需要的东西:

enter image description here