Alexa 技能 - 如何逐行读取结果集

Alexa skill - how to read a resultset row by row

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

我怎样才能做到这一点?

谢谢! 安舒曼

您可以利用sessionAttributes逐行阅读。当您的后端收到初始请求时,查询外部服务并返回第一行并将行数组保留在 sessionAttributes 中。您也可以设置 STATE 属性,这样您就可以在 AMAZON.YesIntent 或其他确认处理程序中检查此 state,然后再提供下一行。此 STATE 属性将帮助您验证确认是否真的用于阅读下一行。

例如:

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

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

Ex: "This is the first row. Do you want to hear more?"

使用AMAZON.YesIntent和AMAZON.NoIntent

当用户说 "next" 检查 state 是否是 READING_ROWS 并根据 index 给出下一个列表中的项目。并在 sessionAttributes 中增加 index.

同样,对于AMAZON.NoIntent,当用户拒绝时提供适当的回应。

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