Алекса SDK передать атрибуты сеанса

Этот Alexa Doc показывает, что sessionAttributes является одним из параметров ответа, а не в пределах response объект.

Я использую Alexa SDK и все emit построители ответа используют только response параметры объекта. Например:

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

Так как я могу использовать emit() из Alexa SDK, а также передать обновленную сессию Атрибуты в ответе?

1 ответ

Решение

Alexa SDK автоматически сериализует и включает пары ключ-значение, которые вы установили на attributes возражать, прежде чем позвонить emit(..),

Более конкретно, вы могли бы сказать:

this.attributes.myAttribute1 = 'some value';
this.emit(':elicitSlot', slotToElicit, speechOutput, repromptSpeech, updatedIntent);

И sessionAttributes Объект будет автоматически обновляться в ответе, чтобы включать:

'myAttribute1': 'some value`

Для справки, вы можете увидеть реализацию elicitSlot в SDK, здесь: https://github.com/alexa/alexa-skills-kit-sdk-for-nodejs/blob/master/lib/response.js#L131-L143

Другие вопросы по тегам