本文介绍了创建一个 Twilio 函数来触发 2 个 webhook 端点(Autopilot 和 FrontApp)用于传入 SMS的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一个 Twilio 函数,它将触发 AutoPilotHQ 的两个 webhook 端点 &FrontApp.

我已经尝试过

const axios = require('axios');const qs = require('querystring');export.handler = 函数(上下文,事件,回调){让 twiml = new Twilio.twiml.MessagingResponse();让 {api版本,短信服务,短信状态,SmsMessageSid,NumSegments,到状态,从,消息Sid,帐号,到城市,来自国家,邮编,从城市,到,从邮编,到国家,身体,数字媒体,从状态} = 事件;让 requestBody = {api版本,短信服务,短信状态,SmsMessageSid,NumSegments,到状态,从,消息Sid,帐号,到城市,来自国家,邮编,从城市,到,从邮编,到国家,身体,数字媒体,从状态};让 url1 = "https://example.com/1";让 url2 = "https://example.com/2";常量配置 = {标题:{'内容类型':'应用程序/x-www-form-urlencoded'}};Promise.all([axios.post(url1, qs.stringify(requestBody), config),axios.post(url2, qs.stringify(requestBody), config)]).那么(结果 => {回调(空,twiml);}).catch(err => {控制台日志(错误);回调(错误);});};

I want to create a Twilio Function that will trigger two webhook endpoints for AutoPilotHQ & FrontApp.

I've tried what's suggested herewhich suggest create the following function. I did make sure to include the dependencies as well.

const got = require('got');

exports.handler = function(context, event, callback) {
  let twiml = new Twilio.twiml.MessagingResponse();
  Promise.all([
    got.post(FIRST_URL, { body: JSON.stringify(event) }),
    got.post(SECOND_URL, { body: JSON.stringify(event) })
  ]).then(responses => callback(null, twiml));
};

I'm getting the following error I get from twilio is:

UnhandledPromiseRejectionWarning: Unhandled promise rejection: HTTPError: Response code 500 (Internal Server Error)
at PromisableRequest.request.once (/var/task/node_modules/got/dist/source/as-promise/index.js:124:28)
at process._tickCallback (internal/process/next_tick.js:68:7)

The URLs webhooks are specific to FrontApp & AutopilotHQ respectively.

解决方案

Does this below Twilio Function work?

Make sure you add querystring and axios as Twilio Function dependencies.

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);
       });
};

这篇关于创建一个 Twilio 函数来触发 2 个 webhook 端点(Autopilot 和 FrontApp)用于传入 SMS的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-26 16:59