尝试使用 Alexa 和 AWS SES 发送电子邮件。电子邮件将发送,但 Alexa 将 return 和错误

Trying to Send Email Using Alexa and AWS SES. Email will send however Alexa will return and Error

我正在编写一个 Alexa 技能,其中一个功能是请求使用 AWS SES 向用户发送电子邮件。

当话语被告知要发送电子邮件时,电子邮件将发送,但 Alexa 将始终回复“所请求技能的响应存在问题”。

我已经测试以确保 'getEmail' 意图本身正在工作并且确实如此。 我也试过在意图中移动函数,但这有相同的结果。

这是使用 SES 发送电子邮件的功能,似乎有效:

函数 sendEmail(事件、上下文、回调){

    var params = {
    Destination: {
        ToAddresses: ["xyz@gmail.com"]
    },
    Message: {
        Body: {
            Text: { Data: "Hi. Here is your email"

            }

        },

        Subject: { Data: "Here is an email"

        }
    },
    Source: "abc@gmail.com"
};


 ses.sendEmail(params, function (err, data) {
      callback(null, {err: err, data: data});
    if (err) {
        console.log(err);
        context.fail(err);


    } else {

        console.log(data);
        context.succeed(event);

    }

});

}

这里是调用 sendEmail() 函数的意图。

'getEmail': function () {

    sendEmail();
    var bodyTemplate1 = new Alexa.templateBuilders.BodyTemplate1Builder();

    var template1 = bodyTemplate1.setTitle("email").setTextContent(makeRichText("email")).setBackgroundImage(makeImage(image)).build();

    this.response.speak("Your email has been sent").renderTemplate(template1).shouldEndSession(true);
    this.emit(':responseReady');

},

当我 运行 时,我希望将电子邮件发送到设备,Alexa 只说 "Your Email has been sent"。目前只是发送电子邮件和设备说 "There was a problem with the requested skill's response"

Here is the error message from AWS Cloud

查看日志,您的 callback(null, {err: err, data: data}); 就是问题所在。根据您发布的代码,callback 不存在(将是 undefined)。看起来你不需要那个,所以你可以删除它。

AWS SDK - SES.sendEmail

"callback" 只是作为第二个参数传递的函数。