Alexa Skill SDK : 请求的技能响应错误

Alexa Skill SDK : Requested skill's response error

我已按照教程进行操作。 我的 Alexa 技能是通过调用、意图和话语建立起来的。 我的 Lambda 函数已设置。

我的端点默认区域是:

arn:aws:lambda:us-east-1:(在 AWS 支持中心找到 myID):function:myLearn

Lambda 中的 myLearn 函数是使用 Alexa Skills Kit 设置的,它从技能中复制了我正确的技能 ID。

我的 HelloIntent 没有插槽。我只是想从调用中获得响应。

我的代码 运行ning node.js 6.10 带有一个名为 index.handler 的处理程序,如下所示:

var Alexa = require("alexa-sdk");

var handlers = {
  "HelloIntent": function () {
    this.response.speak("Hello, It's Me."); 
    this.emit(':responseReady');
  },
  "LaunchRequest": function () {
    this.response.speak("Welcome to my thing I got going on."); 
    this.emit(':responseReady');
  }
};

exports.handler = function(event, context, callback){
  var alexa = Alexa.handler(event, context);
    alexa.registerHandlers(handlers);
    alexa.execute();
};

我了解到 zip 存在问题,但我没有上传任何东西 - 我只是更改了默认的 index.js 文件...我的处理程序没有任何不同的名称 - 它是 index.handler.

当我 运行 在 alexa 控制台中进行测试时,我得到了 ol: "There was a problem with the requested skill's response"

我的 json 输出为空。

当我在 Cloud Watch 中查看我的日志时:

无法导入模块 'index':Function.Module._resolveFilename

处出错

我搜索了这个,很多错误都是用户上传 zip 的方式,并且与处理程序名称和 js 文件有冲突。

看起来您可能已经从 AWS 控制台创建了 Lambda 函数,但没有包含 alexa-sdk。要解决此问题,您可以首先使用包含 alexa-sdk 的 'Alexa blueprints' 之一,然后用您的代码覆盖 Lambda 中的代码。或者,您可以将代码打包到包含 alexa-sdk 模块的 .zip 文件中,然后通过 Web 控制台上传包。这是我前一段时间制作的视频,解释了这个问题 https://youtu.be/cFzAIhsldbs - 我很确定这就是你的问题。希望对您有所帮助。

您可以尝试使用 "speechOutput" 变量来存储您的响应,然后使用 emit 函数。