我正在编写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只说“您的电子邮件已发送”。目前,只有电子邮件发送,并且设备显示“请求的技能的响应存在问题”
答案 0 :(得分:0)
在查看日志时,您的callback(null, {err: err, data: data});
是这里的问题。根据您发布的代码,callback
不存在(将为undefined
)。看来您不需要在那里,可以将其删除。
“回调”只是作为第二个参数传递的函数。