当前位置: 首页 > 知识库问答 >
问题:

Twilio和Sendgrid-传入SMS

孟征
2023-03-14

目前,我们通过MS Flow和Twilio发送单向短信,这很好。我一直在探索如何处理传入的短信,所以我遵循了一个指南,并设法利用Sendgrid将传入的短信转发到我的电子邮件地址,这也是有效的。

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

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

多谢,JP

共有1个答案

桂嘉年
2023-03-14

您可以尝试类似的方法,将Twilio资产上的映射作为私有资产托管,但是如果您将这些信息托管在外部服务器上(稍微高级一点),您也可以通过HTTP请求小部件将其拉入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"
  }  
]

然后使用Run Function小部件并发送3个键:值对(函数参数):

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

然后,Twilio函数将使用这些参数和私有资产的内容来处理映射。确保使用Sendgrid NPM包@Sendgrid/mail版本7.0.1配置Twilio函数环境,并使用以下两个特定于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();
    }
}; 

告诉我进展如何。

 类似资料:
  • 我正在开发一个iOS消息应用程序,使用Twilio发送和接收短信和彩信。关于iOS客户端的Twilio教程似乎只涵盖了呼出和呼入。我理解发送SMS/MMS意味着我向服务器发送HTTP请求,其中我的服务器将请求发送到Twilio以完成发送。然而,我如何在我的应用程序上接收消息?

  • 我相信我可能不太了解Twilio通话的流程。我有两种情况——一种是从浏览器打电话给手机(传出),另一种是从手机打电话给浏览器(客户端)(传入)。 对于这两个调用,当请求到达我的twilio语音URL时,我将twilio发送的post数据记录在日志文件中。 在这两种情况下,“direction”post变量都表示“inbound”。我希望其中一个说“入站”,另一个说“出站”,或“出站拨号”(根据文档

  • 在我向特定的电话号码发送短信后,我如何跟踪潜在的对话?我看到Twilio帐户中有Twilio向其发送http请求的URL。我是否继续检查这个URL并使用JSON数据中的“from”字段查看来自用户的消息?

  • 能否有人,请帮助我或指出我在正确的方向,如何触发一个来电在应用程序,当一个VoIP通知收到。 下面是我在viewcontroller.swift文件中的代码

  • 我正在尝试创建一个SIPendpoint来处理来自Twilio的来电。呼叫过程是:A使用传统电话拨打我注册的Twilio号码之一,将调用与Twilio号码关联的TwimL消息,它会向我的SIPendpoint发送命令。从SIP邀请消息中,我可以在“发件人”字段中接收用户A的电话号码,但我想知道从哪里还可以获得我的Twilio号码?(假设我注册了几个Twilio号码,我的SIP端可能需要根据不同的号

  • 我们正在调查Twilio的一个短信活动,我们将发送一个短信给客户,并根据客户对短信的回复1,2,3我们将更新客户数据。看起来我们可以使用Twilio REST API,例如使用英国号码,但我们所有的客户都在阿联酋。我们买不到阿联酋本地号码。我们所能做的就是从英国号码发送接收到迪拜客户。由于这是一个国际短信,它可能会导致客户的困惑。 那么从迪拜本地号码(+971前缀)发送和接收短信在迪拜是可能的吗?