为单个 Twilio 号码注册多个 webhook

Register multiple webhooks for single Twilio number

是否可以通过编程方式为单个 Twilio 号码注册多个 Webhook URL? (当我们收到入站短信时,我们希望使用该数据调用多个 webhook)

docs for "update an incomingPhoneNumber resource" 建议您可以选择设置 smsUrl,但不清楚如何为单个号码设置 多个 webhook URL。

不是通过 Twilio 控制台选项。您可以编写一个 Twilio 函数,它可以分叉出多个出站 webhook,如下所示,然后您只需将 Twilio 控制台指向此 Twilio 函数。

const axios = require('axios');
const qs = require('querystring');

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

  let twiml = new Twilio.twiml.MessagingResponse();

  let { 
      ApiVersion,
      SmsSid,
      SmsStatus,
      SmsMessageSid,
      NumSegments,
      ToState,
      From,
      MessageSid,
      AccountSid,
      ToCity,
      FromCountry,
      ToZip,
      FromCity,
      To,
      FromZip,
      ToCountry,
      Body,
      NumMedia,
      FromState 
  } = event;

  let requestBody = {
      ApiVersion,
      SmsSid,
      SmsStatus,
      SmsMessageSid,
      NumSegments,
      ToState,
      From,
      MessageSid,
      AccountSid,
      ToCity,
      FromCountry,
      ToZip,
      FromCity,
      To,
      FromZip,
      ToCountry,
      Body,
      NumMedia,
      FromState 
  };

    let url1 = "https://example.com/1";
    let url2 = "https://example.com/2";

   const config = {
     headers: {
     'Content-Type': 'application/x-www-form-urlencoded'
     }};

  Promise.all([
       axios.post(url1, qs.stringify(requestBody), config),
       axios.post(url2, qs.stringify(requestBody), config)
       ]).then(result => {
           callback(null, twiml);
       }).catch(err => {
           console.log(err);
           callback(err);
       });
};