当前,我们通过MS Flow和Twilio发送单向短信,效果很好。我一直在探索如何处理传入的SMS,因此我遵循了指南并设法利用Sendgrid将传入的SMS转发到我的电子邮件地址,该电子邮件地址也可以使用。
但是,我希望原始发件人通过电子邮件接收SMS。我可以给每个工作人员自己的电话号码,该电话号码可以定义每个人,但是在发送回复电子邮件之前,我需要一种Twilio或Sendgrid进行查找的方式,以便知道发送到哪里,即
User 1 = 01234455678,
User 2 = 01234543245,
User 3 = 06546546445,...etc.
我想我可以为每个数字重新创建相同的过程,但这将需要大量的Twilio函数和变量,这似乎不是实现此目的的好方法?
对不起,我不是一个编码员,请尝试使用在线指南和论坛。
非常感谢, JP
答案 0 :(得分:0)
您可以尝试类似的操作,将映射作为私有资产托管在Twilio Assets上,但是如果您将其托管在外部服务器上,也可以通过HTTP Request Widget将这些信息拉入Studio。 )。在我的情况下,我将其文件名为map.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}}
@sendgrid/mail
版本7.0.1
的Sendgrid NPM软件包configure来配置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();
}
};
让我知道怎么回事。