无法调用远程端点,或者它返回的响应无效。 (alexa,aws)

时间:2018-02-03 14:39:21

标签: javascript node.js amazon-web-services alexa

我目前正在开发alexa技能。这实际上是我第一次尝试这个,到目前为止我的表现还算不错。然而,我偶然发现了一个似乎广泛传播的问题,但我无法找到解决问题的答案。

首先要做的事情: 我按照a tutorial开始了这项技能。可能是本教程已过时,因此会出现此错误。

我从头开始创建了一项技能,它适用于调用LaunchRequest的部分:

enter image description here

如您所见,我得到了我的回应。 (适用于测试环境以及alexa本身)。现在,当尝试调用IntentRequest时,我只收到错误消息:

  

无法调用远程端点,或者它返回的响应无效。

enter image description here

正如我从图片/请求中所知,正确的意图请求被调用(在我的情况下是getSubscriberCount) - 这就是我不知道如何解决这个问题。

为了简短起见,这里是Intent的JS部分:

案例" IntentRequest":         //意图请求         的console.log(INTENT REQUEST

    switch(event.request.intent.name) {
        case "GetSubscriberCount":
            var endpoint = "my url"
            var body = ""
            https.get(endpoint, (response) => {
                response.on('data', (chunk) => { body += chunk })
    response.on('end', () => {
        var data = JSON.parse(body)
        var subscriberCount = data.items[0].statistics.subscriberCount
        context.succeed(
        generateResponse(
            buildSpeechletResponse(`Du hast momentan ${subscriberCount} Abonnenten`, true),
            {}
        )
    )

这导致了我的问题。为了测试究竟是什么问题,我尝试了以下方法:

  • 在我的浏览器中调用端点 - >正确输出
  • 调整了"响应"至少看看是否有效 - >没有工作
  • 检查了与此错误相关的多个来源 - >
  • 没有任何帮助

我看到了摆脱这种情况的一些方法,因为这似乎是一个常见的问题,但我迷路了。 Someone提到了一个环境变量,我无法动手。 Another one建议手动运行JSON请求,我试过,但导致同样的错误。

希望你能在这里帮助我。

1 个答案:

答案 0 :(得分:0)

假设您使用AWS Lambda,这可能是因为您没有创建响应权限,或者您的AWS Lambda函数出现错误。