【问题标题】:List in custom Alexa skills列出自定义 Alexa 技能
【发布时间】:2018-12-31 02:06:00
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

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


【解决方案1】:

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

使用 AMAZON.NextIntent

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

当用户请求列表时,在您的响应中给出第一个项目,并在响应 sessionAttributes 时跟踪项目 index。你也可以设置一个 STATE 属性,这样你就可以在给下一个项目之前在AMAZON.NextIntent 处理程序中检查这个状态。

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

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

更多关于 sessionAttributes 和响应参数here

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

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

更多关于SSMLhere

【讨论】:

    猜你喜欢
    • 2020-02-23
    • 2018-11-04
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 2018-09-14
    • 1970-01-01
    相关资源
    最近更新 更多