首页 文章

Alexa Skills - sessionAttributes如何实际工作?

提问于
浏览
1

我一直试图让自己的头脑在这周围几天,它类似于another question,但这个答案并没有解决我的问题 .

我无法从我的Alexa技能填充JSON响应的sessionAttributes属性:

var sessionAttributes = {};
sessionAttributes = { "somekey": "somevalue" };
session.attributes = sessionAttributes;

我认为从我的AWS Lambda函数发送的响应来自Alexa的请求的响应将包括我的自定义添加,但事实并非如此,我无法弄清楚原因 .

我想我明白响应对象对于this.response访问的闭包是私有的,但这只会让我更加困惑(来源:Github Issue

所以我的问题是: How can I persist data throughout a session involving multiple user interactions with Alexa?

我认为需要构建我自己的响应对象,我不能使用任何自动化功能?

1 回答

  • 1

    您错过了对setSessionAttributes的调用,这使得sessionAttributes的新值可供其他处理程序使用 .

    所以你需要做的是:

    var sessionAttributes = handlerInput.attributesManager.getSessionAttributes();
    sessionAttributes.somekey = "somevalue";
    handlerInput.attributesManager.setSessionAttributes(sessionAttributes);
    

    注意:上面的示例要求您使用Node SDK 2版本 .

相关问题