alexa sdk传递会话属性

时间:2018-03-19 06:56:10

标签: node.js alexa alexa-sdk-nodejs

This Alexa Doc表明sessionAttributes是响应参数之一,不在response对象中。

我使用Alexa SDK并且所有emit响应构建器仅使用response对象的参数。例如:

this.emit(':elicitSlot', slotToElicit, speechOutput, repromptSpeech, updatedIntent)

那么我如何使用Alexa SDK中的emit()并在响应中传递更新的sessionAttributes?

1 个答案:

答案 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