This Alexa Doc表明sessionAttributes是响应参数之一,不在response
对象中。
我使用Alexa SDK并且所有emit
响应构建器仅使用response
对象的参数。例如:
this.emit(':elicitSlot', slotToElicit, speechOutput, repromptSpeech, updatedIntent)
那么我如何使用Alexa SDK中的emit()
并在响应中传递更新的sessionAttributes?
答案 0 :(得分:1)
在您致电attributes
之前,Alexa SDK会自动序列化并包含您在emit(..)
对象上设置的键值对。
更具体地说,你可以说:
this.attributes.myAttribute1 = 'some value';
this.emit(':elicitSlot', slotToElicit, speechOutput, repromptSpeech, updatedIntent);
sessionAttributes
对象将在响应中自动更新,包括:
'myAttribute1': 'some value`
作为参考,你可以在SDK中看到 elicitSlot 的实现,在这里:https://github.com/alexa/alexa-skills-kit-sdk-for-nodejs/blob/master/lib/response.js#L131-L143