首页 > 解决方案 > 列出自定义 Alexa 技能

问题描述

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

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

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

  1. 发送一个包含一个项目的 JSON 答案 - Alexa 读取这个项目 - 用户说例如“下一个” - Alexa 向我的服务器请求下一个项目 - 我的服务器发送下一个 JSON 答案......等等。

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

我不确定哪种解决方案是可能的以及如何解决。那么,任何人都可以帮助我或向我指出一些信息吗?

标签: alexaalexa-skills-kitalexa-skill

解决方案


这两种方式都是可能的,选择哪一种取决于您列出的内容。

使用 AMAZON.NextIntent

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

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

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

当用户说“下一个”时, 检查是否stateLIST_ITEMS并且基于index从您的列表中给出下一个项目。并且在sessionAttributes增量index

更多关于 sessionAttributes 和 Response 参数的信息

现在,如果您的项目只是名称,那么您可以一个接一个地阅读它。

在这两种解决方案中,使用它总是很好,SSML而不仅仅是PlainText. SSML让您更好地控制您的回答的表达方式。

更多关于SSML 这里


推荐阅读