2

此 Alexa Doc显示 sessionAttributes 是响应参数之一,而不是在response对象内。

我正在使用Alexa SDK,所有emit响应构建器都只使用response对象的参数。例如:

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

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

4

1 回答 1

1

attributesAlexa 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

于 2018-04-07T02:47:48.967 回答