创建HTTP POST到Twilio功能(发送SMS)

时间:2019-01-30 01:51:39

标签: twilio mailchimp zapier twilio-functions

我创建了一个Twilio函数,我想使用该函数将我的会员推荐链接发送给通过我的频道的应用程序的订户。

它与静态的to / from数字一起使用时效果很好,但是我想将“ to”字段设为动态变量,当Zapier检测到我的Mailchimp邮件列表的新订阅者时,可以通过HTTP / Webhook POST对其进行操作并将他们的电话号码作为变量传递。

我也不清楚我需要做些什么来验证进行POST的客户端(Zapier),因为我不希望该功能向世界开放,如果可以分享任何见解,那将是真诚的感激-我是一个非常缺乏经验的程序员,试图很快地学习!

@philnash-感谢您的建议,请慢慢实施!

非常感谢!

exports.handler = function(context, event, callback) {
  const appCodes = ['code1', 'code2', 'code3', 'code4']
  var smsBody = refCode ();

function refCode () {
    return appCodes[Math.floor((Math.random() * appCodes.length))];
};
  
  context.getTwilioClient().messages.create({
    to: '+11112223333', // How do I make this dynamic from HTTP/Zapier Webhook POST???
    from: '+1444555666',
    body: `Get the App: ${smsBody}`
  }).then(msg => {
    callback(null, msg.sid);
  }).catch(err => callback(err));
}

3 个答案:

答案 0 :(得分:0)

这里是Twilio开发人员的传播者。

我猜想Zapier Webhook正在发送详细信息(包括电话号码)作为POST请求的正文。

请求正文中的所有参数都显示在event对象上,该对象传递到处理程序中。您可能想运行一个测试,在其中打印出event对象的内容,以查看所传递的内容。您可以执行以下操作:

exports.handler = function(context, event, callback) {
  for (let key in event) {
    console.log(`${key}: ${event[key]}`);
  }
  // ... rest of the function
}

然后,当您确定要存储数字的参数时,可以在调用中使用它来创建消息。

让我知道是否有帮助。

答案 1 :(得分:0)

尝试一下:

exports.handler = function(context, event, callback) {
  for (let key in event) {
    console.log(`${key}: ${event[key]}`);
  }
  // ... rest of the function
  callback(null, 'complete');
};

答案 2 :(得分:0)

感谢大家的投入,我们由衷的感谢!我可以使用以下代码解决此问题:

exports.handler = function(context, event, callback) {
  const appCodes = ['code1', 'code2', 'code3', 'code4']
  var smsBody = refCode ();
  var subNum = event.primaryPhone || 'There is no subscriber number'; // primaryPhone sent via HTTP post to twilio function

function refCode () {
    return appCodes[Math.floor((Math.random() * appCodes.length))];
};

  context.getTwilioClient().messages.create({
    to: `${subNum}`, // parameters & values recieved from HTTP POST are available within the twilio functions "event" context
    from: '+1444555666',
    body: `Get the App: ${smsBody}`
  }).then(msg => {
    callback(null, msg.sid);
  }).catch(err => callback(err));
}