【发布时间】:2017-05-26 11:21:23
【问题描述】:
AWS SES 可与 Lex 测试聊天机器人一起使用,但在使用 Slack 应用程序发布聊天机器人后它不起作用(不会触发电子邮件服务)。但是,Lambda 函数似乎没有任何问题,因为我将响应文本恢复为松弛状态。而且我认为没有办法检查为什么松弛会导致问题的错误。
Lambda功能:
var aws = require('aws-sdk');
var ses = new aws.SES({
region: 'us-east-1'
});
exports.handler = function(event, context, callback) {
var eParams = {
Destination: {
ToAddresses: [event.currentIntent.slots.Email]
},
Message: {
Body: {
Text: {
Data: "Hi, How are you?"
}
},
Subject: {
Data: "Title"
}
},
Source: "abc@gmail.com"
};
var email = ses.sendEmail(eParams, function(err, data) {
if (err)
else {
context.succeed(event);
}
});
callback(null, {
"dialogAction": {
"type": "ConfirmIntent",
"fulfillmentState": "Fulfilled",
"message": {
"contentType": "PlainText",
"content": "message to convey to the user, i.e. Are you sure you want a large pizza?"
}
}
});
};
编辑 1:我认为问题是当我在 Slack 上发布我的 Lex 机器人时,我没有获得 [event.currentIntent.slots.Email] 中的值。
【问题讨论】:
-
我认为有一种方法可以在您调用
ses.sendEmail(...)时检查错误,您应该在回调中记录错误,即if (err) { logError(err); } ...,这可以很好地解释为什么电子邮件没有发送. -
@ARJMP 我认为问题是当我在 Slack 上发布我的 Lex 机器人时,我没有获得“[event.currentIntent.slots.Email]”中的值
标签: amazon-web-services aws-lambda slack-api