Twilio и Sendgrid - входящие SMS - PullRequest
0 голосов
/ 24 апреля 2020

В настоящее время мы отправляем односторонние СМС через MS Flow и Twilio, которые отлично работают. Я изучал, как обрабатывать входящие SMS, поэтому я следовал руководству и сумел использовать Sendgrid для пересылки входящих SMS на мой адрес электронной почты, который также работает.

Однако я ищу первоначального отправителя получить смс по электронной почте. Я могу дать каждому сотруднику свой номер телефона, который будет определять каждого человека, но мне нужно, чтобы Twilio или Sendgrid сделали поиск до отправки ответного электронного письма, чтобы он знал, куда его отправить, т.е.

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

Полагаю, я мог бы воссоздать один и тот же процесс для каждого числа, но для этого потребовалось бы множество функций и переменных Twilio, что не похоже на отличный способ выполнить sh это?

Извините, я не так много кодировщика и попробуйте использовать интерактивные руководства и форумы, где я могу.

Большое спасибо, JP

1 Ответ

0 голосов
/ 25 апреля 2020

Вы можете попробовать что-то вроде этого, разместив отображение на Активы Twilio в качестве частного ресурса, но вы также можете перетащить эту информацию в Studio с помощью виджета HTTP-запроса, если вы разместили ее на внешнем сервере ( немного более продвинутый). В моем случае я вызвал сопоставление моего файла. 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 будет затем использовать эти параметры и содержимое частного ресурса для обработки сопоставления. Обязательно настройте свою среду Twilio Functions с пакетом Sendgrid NPM, @sendgrid/mail версия 7.0.1, и вы сконфигурируете две указанные ниже переменные окружения Sendgrid, специфицирующие c, с соответствующими значениями (доступ к которым осуществляется через объект контекста в 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();
    }
}; 

Дайте мне знать, как это происходит.

...