如何在alexa中存储一些在整个项目中使用的值

时间:2017-01-18 06:40:24

标签: alexa-skills-kit alexa-skill

我正在开发Alexa音乐应用程序,它的工作方式如下。 我要求Alexa为一位艺术家演奏音乐,并说是Lady gaga。我正在拿起这个名字并将它传递给我的api并收到10首歌曲作为回应。 现在我将第一首歌传递给InetentRequest并播放这首歌。

现在我正在寻找AudioPlayer.PlaybackNearlyFinished请求表格alexa以获得第二首歌曲。但问题是我无法在这里得到艺术家的名字来播放歌曲。那么无论如何都要将艺术家的名字存储在某个地方并在项目中的任何地方使用它?

2 个答案:

答案 0 :(得分:1)

我认为存储会话数据的最佳方式是在响应的会话属性中。

创建响应对象时,可以在“sessionAttributes”对象中放置所需的任何数据。如果您使用的是SDK,它可能会有一个功能。

当您在同一个Alexa会话中收到下一个意图时,它会将您的数据放在事件的“session.attributes”中。

docs将您的数据称为“键值对的映射”,但我发现只要顶层是对象而不是数组,您就可以在其中放置任何内容。

答案 1 :(得分:0)

如果您没有将艺术家存储在会话中并将其保留到下一首歌曲中,我认为您可能需要找到一些方法来使用您的技能中的MusicRecording意图。

https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/musicrecording-intents