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
我从我的 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