Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据日期/亚马逊插槽类型从API返回数据_Javascript_Alexa Skills Kit_Amazon Echo - Fatal编程技术网

Javascript 根据日期/亚马逊插槽类型从API返回数据

Javascript 根据日期/亚马逊插槽类型从API返回数据,javascript,alexa-skills-kit,amazon-echo,Javascript,Alexa Skills Kit,Amazon Echo,我正在编写一个Lambda函数,用于从Alexa技能的API获取数据,但我希望通过使用Amazon内置的Amazon.DATE slot类型使结果更加具体。例如,仅返回特定日期的事件 功能: switch(event.request.intent.name) { case "GetTodaysPerfs": var endpoint = "http://services-app.lincolncenter.org/api/v1/event?dateFrom=2017-06-11T04

我正在编写一个Lambda函数,用于从Alexa技能的API获取数据,但我希望通过使用Amazon内置的Amazon.DATE slot类型使结果更加具体。例如,仅返回特定日期的事件

功能:

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,但我有一些想法:

使用AMAZON.DATE动态构造端点URL

循环遍历数据对象,并根据每个事件的data.dateRange进行筛选

为了获得更好的性能,我倾向于第一种,因为默认数据非常大。对我来说,哪一个是最好的解决方案?我如何才能实现它

请让我知道,如果我可以提供更多有用的信息


谢谢

如果您想让用户指定日期,那么在intent中包含一个日期槽。正如您所确定的,此插槽的类型为AMAZON.DATE

然后在您的意图处理程序中,测试插槽是否具有有效数据,并在您的请求中使用它

有关插槽的详细信息,请参阅Alexa文档,例如。听起来您已经阅读了此内容,并搜索“Alexa插槽示例”,例如,获取有关访问插槽数据的代码的帮助


听起来你在第一次进近的正确轨道上。

谢谢!这真的很有帮助。我只是想访问插槽数据,但似乎无法访问。我尝试在数据变量上方定义var todaySlot=this.request.intent.slots.Today.value,但它没有返回日期。它需要自己的功能吗?