列出自定义Alexa技能

时间:2018-07-23 14:59:44

标签: alexa alexa-skills-kit alexa-skill

我是Alexa Skills的新手,但与此同时,我已经阅读了大量的信息和教程。

幸运的是,我目前能够在自己的服务器上创建自己的自定义技能(基于PHP),并且已经可以使用不同的意图,话语,插槽等工作。 现在,我希望Alexa读取PlainText中的项目列表(我通过JSON发送),但找不到任何信息。

我认为有两种选择(如果我错了,请纠正我):

  1. 发送包含一个项目的JSON答案-Alexa读取该项目-用户说“下一个”-Alexa向我的服务器请求下一个项目-我的服务器发送下一个JSON答案...依此类推。

  2. 发送包含数组中所有项目的JSON答案-Alexa依次读取每个项目。

我不确定哪种解决方案可行,如何解决。 因此,有人可以在这方面帮助我还是为我提供一些信息?

1 个答案:

答案 0 :(得分:5)

两种方法都是可行的,哪种方法取决于您列出的内容。

使用AMAZON.NextIntent

如果单个列表项包含项名称和一些有关其的详细信息,那么一次性读取就不会带来良好的用户体验。在这种情况下,您可以使用AMAZON.NextIntent处理用户“下一个” 的请求。

当用户要求提供列表时,请在响应中提供第一项,并跟踪响应index中的项sessionAttributes。您也可以设置STATE属性,以便在提供下一项之前,可以在AMAZON.NextIntent处理程序中检查此状态。

"sessionAttributes": {
    "index": 1,
    "STATE": "LIST_ITEMS"
  }

当用户说出“下一步” 时 检查state是否为LIST_ITEMS,并根据index给出列表中的下一项。然后在sessionAttributes中增加index

有关sessionAttributes和响应参数here的更多信息

现在,如果您的商品只是名字,那么您可以一个接一个地阅读它。

在这两种解决方案中,最好使用SSML而不是仅仅使用PlainTextSSML使您可以更好地控制语音回复的方式。

有关SSML here

的更多信息
相关问题