alexa sdk 传递会话属性
alexa sdk pass session attributes
This Alexa Doc 表明 sessionAttributes 是响应参数之一,不在 response
对象内。
我正在使用 Alexa SDK,所有 emit
响应生成器仅使用 response
对象的参数。例如:
this.emit(':elicitSlot', slotToElicit, speechOutput, repromptSpeech, updatedIntent)
那么如何使用 Alexa SDK 中的 emit()
并在响应中传递更新的 sessionAttributes?
Alexa SDK 会自动序列化并包含您在调用 emit(..)
.
之前在 attributes
对象上设置的 key-value 对
更具体地说,你可以说:
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
This Alexa Doc 表明 sessionAttributes 是响应参数之一,不在 response
对象内。
我正在使用 Alexa SDK,所有 emit
响应生成器仅使用 response
对象的参数。例如:
this.emit(':elicitSlot', slotToElicit, speechOutput, repromptSpeech, updatedIntent)
那么如何使用 Alexa SDK 中的 emit()
并在响应中传递更新的 sessionAttributes?
Alexa SDK 会自动序列化并包含您在调用 emit(..)
.
attributes
对象上设置的 key-value 对
更具体地说,你可以说:
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