首页 > 解决方案 > Alexa lamda 在 Node.JS 中获取底层解析的槽值

问题描述

我有一个名为“获取状态”的意图,它有一个SHOULDCHANGESTATUS类型的插槽YES_NO

我的 Lambda 中有以下逻辑,使用 Alexa 开发工具中的文本测试工具可以正常工作。

let changeStatusSlot = handlerInput.requestEnvelope.request.intent.slots.SHOULDCHANGESTATUS.value;      

if(changeStatusSlot === 'no'){
    return statusFunctions.closureMessage(handlerInput);
}

当我使用实际设备进行测试时,“No”这个词会以“Naw”的形式出现。

Yes_No 插槽将“naw”作为“No”的可接受类型,所以我应该能够处理这个问题。

我需要更改插槽上的选择器SHOULDCHANGESTATUS以获取此插槽的基础值,这应该是 NO,但我无法让它工作。

我努力了:

handlerInput.requestEnvelope.request.intent.slots.SHOULDCHANGESTATUS.Resolution.Authorities[0].Values[0].Value.Name 

但我得到一个未定义的错误。

标签: node.jsalexa

解决方案


我很接近,解决方案是:

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

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

在此处输入图像描述


推荐阅读