Twilio将SMS转发到电子邮件和另一部电话

我的出发点是关于将传入的SMS消息转发到带有node.js,sendgrid和Twilio功能的电子邮件的答案: https://stackoverflow.com/a/50728459/

我也看了本教程: https://support.twilio.com/hc/en-us/articles/223134287-Forwarding-SMS-messages-to-another-phone-number

我可以将两个动作组合在一个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与您的服务之间的连接失败。

qqaq99 回答:Twilio将SMS转发到电子邮件和另一部电话

尝试以下代码,这是该this blog example中的另一行。

(此行:twiml.message({to: '+1555xxxxxxx'},event.Body); // Forward SMS to this Number

const got = require('got');

exports.handler = function(context,event,callback) {

  const requestBody = {
    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
      }
    ]
  };

  got
    .post('https://api.sendgrid.com/v3/mail/send',{
      headers: {
        Authorization: `Bearer ${context.SENDGRID_API_KEY}`,"Content-Type": 'application/json'
      },body: JSON.stringify(requestBody)
    })
    .then(response => {
      console.log(response);
      let twiml = new Twilio.twiml.MessagingResponse();
      twiml.message({to: '+1555xxxxxxx'},event.Body); // Forward SMS to this Number
      callback(null,twiml);
    })
    .catch(err => {
      console.log(err);
      callback(err);
    });
};
本文链接:https://www.f2er.com/3130645.html

大家都在问