【问题标题】:Alexa skill - how to read a resultset row by rowAlexa 技能 - 如何逐行读取结果集
【发布时间】:2019-03-15 18:51:43
【问题描述】:

我从我的 lambda 中的 API 调用中获得了行列表。我希望我的 Alexa 技能意图一次读取一行,并在确认后才读取下一行。

我怎样才能做到这一点?

谢谢! 人类

【问题讨论】:

  • 你可以提供更多关于你已经取得或尝试的细节,但一般来说,alexa 的会话属性可能会有所帮助,类似于developer.amazon.com/blogs/alexa/post/…
  • 你好 Anshuman。请在您的问题中添加更多详细信息。我发布了具有此功能的技能,但是,我不知道它是否对您有用。您能否添加详细信息,例如您使用的语言、SDK 版本、执行 get 请求时得到的响应等?

标签: aws-lambda alexa alexa-skills-kit alexa-voice-service


【解决方案1】:

您可以使用sessionAttributes 逐行读取。当您的后端收到初始请求时,查询外部服务并返回第一行并将行数组保留在sessionAttributes 中。你也可以设置一个STATE 属性,这样你就可以在给出下一行之前在AMAZON.YesIntent 或其他确认处理程序中检查这个state。这个STATE 属性将帮助您验证确认是否实际上是为了读取下一行。

例如:

"sessionAttributes": {
    "row": ["This is the first row","This is the second row", ..  ],
    "index": 1,
    "STATE": "READING_ROWS"
  }

由于您希望用户在阅读第二行之前进行确认,因此您还应该在响应中附加一些确认消息。

例如:“这是第一行。你想听更多吗?”

使用 AMAZON.YesIntent 和 AMAZON.NoIntent

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

同样,AMAZON.NoIntent 在用户拒绝时提供适当的响应。

更多关于 sessionAttributes 和响应参数here

【讨论】:

    猜你喜欢
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 2018-12-12
    • 1970-01-01
    • 2023-01-21
    • 1970-01-01
    相关资源
    最近更新 更多