我正在编写一个Alexa技能,其中一个功能是请求使用AWS SES向用户发送电子邮件。
当说话语发送电子邮件时,电子邮件将发送,但Alexa将始终回复"请求技能的响应有问题"。
我已经测试以确保"getEmail"意图本身有效并且确实有效。 我也尝试在意图中移动函数,但这有相同的结果。
这是使用SES发送电子邮件的功能,它似乎正在工作:
函数发送电子邮件(事件、上下文、回调({
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 只说"您的电子邮件已发送"。目前,只是发送电子邮件,设备说"请求的技能响应有问题">
以下是来自 AWS 云的错误消息
查看日志,您的callback(null, {err: err, data: data});
是这里的问题。从您发布的代码来看,callback
不存在(将undefined
(。看起来你不需要它,所以你可以删除它。
AWS 开发工具包 -SES.sendEmail
"回调"只是作为第二个参数传递的函数。