aws-lambda - Alexa 技能 - 如何逐行读取结果集
问题描述
我从我的 lambda 中的 API 调用中获取行列表。我希望我的 Alexa 技能意图一次读取一行,并在确认后才读取下一行。
我怎样才能做到这一点?
谢谢!安舒曼
解决方案
您可以使用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
当用户说“下一个”时,检查是否state
是READING_ROWS
并且基于index
从您的列表中给出下一个项目。并且在sessionAttributes
增量中index
。
同样,AMAZON.NoIntent
当用户拒绝时提供适当的响应。
更多关于 sessionAttributes 和 Response 参数的信息
推荐阅读
- python - 具有不同域的两个方程的函数
- java - Java - 将 map(key, set) 中的不可修改集转换为可修改集
- shiny - 当文件准备好在 Shiny 中下载时,如何打印通知?
- java - 我有下三角矩阵问题,我的代码正在运行,但不是我想要的
- html - 修改 Bootstrap 工具提示的布局
- python - 如何使用 Django 比较 3 个日期?
- python - 在 Django 中搜索多个数据模型
- java - 无法使用 Servlet 和 JSP 更新 mySQL
- java - api 22 中 LocationListener 的问题
- kustomize - kustomize:使用 Argo Rollout CRD 进行战略合并