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

时间:2018-10-10 19:19:06

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

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

我该如何实现?

谢谢! Anshuman

1 个答案:

答案 0 :(得分:2)

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

例如:

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

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

  

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

使用AMAZON.YesIntent和AMAZON.NoIntent

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

类似地,对于AMAZON.NoIntent,当用户拒绝时提供正确的响应。

有关sessionAttributes和响应参数here

的更多信息