我的出发点是关于将传入的SMS消息转发到带有node.js,sendgrid和Twilio功能的电子邮件的答案: https://stackoverflow.com/a/50728459/
我可以将两个动作组合在一个Twilio功能中吗?我更喜欢将它们组合成一个函数,因为我看不到一种配置Twilio编号的方法来响应传入的消息而执行两个单独的“消息传递动作”。我只能选择一个函数来运行。
我希望我只需要向上面的answer添加几行代码:
let twiml = new Twilio.twiml.MessagingResponse();
twiml.message(`${event.From}: ${event.Body}`,{
to: '+13105555555'
});
callback(null,twiml);
在该功能中,我想先将SMS转发到另一个电话号码,然后再将消息转发到电子邮件。
已设置Twilio函数环境变量。
这是我的代码:
const https = require('https');
exports.handler = function (context,event,callback) {
let sms_twiml = new Twilio.sms_twiml.MessagingResponse();
sms_twiml.message(`${event.From}: ${event.Body}`,{
to: context.TO_SMS_NUMber
});
//executing a callback terminates the function
//callback(null,sms_twiml);
let postData = JSON.stringify({
personalizations: [{
to: [{
email: context.TO_EMAIL_ADDRESS
}]
}],from: {
email: context.FROM_EMAIL_ADDRESS
},subject: `New SMS message from: ${event.From}`,content: [{
type: 'text/plain',value: event.Body
}]
});
let postOptions = {
host: 'api.sendgrid.com',port: '443',path: '/v3/mail/send',method: 'POST',headers: {
'Authorization': 'Bearer ${context.SENDGRID_API_KEY}','Content-Type': 'application/json','Content-Length': Buffer.byteLength(postData),}
};
let req = https.request(postOptions,function (res) {
let email_twiml = new Twilio.email_twiml.MessagingResponse();
callback(null,email_twiml);
});
req.write(postData);
req.end();
};
我遇到错误-11200
HTTP检索失败 尝试检索此URL的内容时失败。 11200错误表明Twilio与您的服务之间的连接失败。