Twilio和Sendgrid-收到的短信

问题描述 投票:0回答:1

当前,我们通过MS Flow和Twilio发送单向SMS,效果很好。我一直在探索如何处理传入的SMS,因此我遵循了指南,并设法利用Sendgrid将传入的SMS转发到我的电子邮件地址,该电子邮件地址也有效。

但是,我希望原始发件人通过电子邮件接收SMS。我可以给每个工作人员自己的电话号码,该电话号码可以定义每个人,但是在发送回复电子邮件之前,我需要一种Twilio或Sendgrid进行查找的方式,以便它知道将其发送到哪里,即

User 1 = 01234455678, 
User 2 = 01234543245,
User 3 = 06546546445,...etc.

我想我可以为每个数字重新创建相同的过程,但这将需要大量的Twilio函数和变量,这似乎不是实现此目的的好方法?

[抱歉,我不是一个编码员,请尝试使用在线指南和论坛。

非常感谢,JP

twilio sms sendgrid
1个回答
0
投票

[您可以尝试类似的操作,将映射作为私有资产托管在Twilio Assets上,但是如果您将其托管在外部服务器上,则也可以通过HTTP Request Widget将这些信息拉入Studio。以我为例,我将其文件命名为mapping.json,其格式为:

[
  {
  "name": "John Doe",
  "phone": "+14075551212",
  "email": "jdoe@example.com"
  },
  {
  "name": "Susan Doe",
  "phone": "+19545551212",
  "email": "sdoe@example.com"
  },
  {
  "name": "Nadia Doe",
  "phone": "+14705551212",
  "email": "ndoe@example.com"
  },
  {
  "name": "Carl Doe",
  "phone": "+18025551212",
  "email": "cdoe@example.com"
  }  
]

然后您将使用“运行功能”小部件并发送3个键:值对(功能参数):

从-{{trigger.message.From}}到-{{trigger.message.To}}正文-{{trigger.message.Body}}

然后您的Twilio函数将使用这些参数和私有资产的内容来处理映射。确保使用Sendgrid NPM软件包configure版本@sendgrid/mail7.0.1您的Twilio Functions环境,并在下面配置两个特定于Sendgrid的环境变量及其相应的值(可通过JavaScript中的上下文对象访问):

SENDGRID_API_KEY

FROM_EMAIL_ADDRESS

const fs = require('fs');
const sgMail = require('@sendgrid/mail');

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

    let from = event.From;
    let to = event.To;
    let body = event.Body;

    let fileName = 'mapping.json';
    let file = Runtime.getAssets()[fileName].path;
    let text = fs.readFileSync(file);
    let mappings  = JSON.parse(text);

    // Filter array to match to number
    let result = mappings.filter(record => record.phone === to);

    if (result.length) {

    sgMail.setApiKey(context.SENDGRID_API_KEY);
        // Define message params
        const msg = {
          to: result[0].email,
          from: context.FROM_EMAIL_ADDRESS,
          text: body,
          subject: `New SMS from: ${from}`,
        };
        // Send message
        sgMail.send(msg)
        .then(response => {
            console.log("Success.");
            callback();
        })
        .catch(err => {
            console.log("Not Success.");
            callback(err);
        });
    } else {
    console.log("** NO MATCH **");
    callback();
    }
}; 

让我知道怎么回事。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.