我正在编写一个 Lambda 函数,该函数从 Alexa Skill 的 API 获取数据,但我想通过使用 Amazon 的内置AMAZON.DATE
插槽类型使结果更加具体。例如,仅返回特定日期的事件。
功能:
switch(event.request.intent.name) {
case "GetTodaysPerfs":
var endpoint = "http://services-app.lincolncenter.org/api/v1/event?dateFrom=2017-06-11T04%3A00%3A00.0Z&dateTo=2017-06-12T04%3A00%3A00.0Z"
var body = ""
http.get(endpoint, (response) => {
response.on('data', (chunk) => { body += chunk })
response.on('end', () => {
var data = JSON.parse(body)
var perfs = data.data[0].show.title
context.succeed(
generateResponse(
buildSpeechletResponse(`The following performances are on today: ${perfs}`, true),
{}
)
)
})
})
break;
default:
throw "Invalid intent"
}
我可以通过在端点 URL 中手动指定日期范围来获得更具体的结果,但显然,这并不理想,因为它不是动态的。
我是使用 API 的新手,但我有一些想法:
使用动态构建端点 URL
AMAZON.DATE
循环遍历
data
对象并根据data.dateRange
每个事件进行过滤
为了获得更好的性能,我倾向于第一个,因为默认数据非常大。哪个对我来说是最好的解决方案,我该如何实现?
如果我能提供更多有用的信息,请告诉我。
谢谢!