如何接收Twilio statusCallback

我正在尝试在我的Web应用程序中建立状态回调。我已经设置了一个Twilio函数:

exports.handler = function(context,event,callback) {
    let twiml = new Twilio.twiml.VoiceResponse();

    if(event.To) {
      const attr = isAValidPhoneNumber(event.To) ? 'number' : 'client';

      const dial = twiml.dial({
        callerId: event.From,});
      dial[attr]({
          statusCallbackEvent: 'completed',statusCallback: 'https://pink-dragonfly-9052.twil.io/calls/events',statusCallbackMethod: 'POST'
      },event.To);
    } else {
      twiml.say('Thanks for calling!');
    }

     callback(null,twiml);
};

function isAValidPhoneNumber(number) {
  return /^[\d\+\-\(\) ]+$/.test(number);
}

我正在尝试通过以下方式在我的应用程序后端接收statuscallback:

const Router = require('express').Router;
const router = new Router();

router.get('https://pink-dragonfly-9052.twil.io/calls/events',(req,res) => {
  console.log("requested");
});

但是后端路由器未收到响应。我还在TwiML中将'https://pink-dragonfly-9052.twil.io/calls/events'网址设置为状态回调网址。

然后如何接收状态回调?

非常感谢。

yjyhp5211314 回答:如何接收Twilio statusCallback

Twilio开发人员推广人员在这里! ?

快速浏览一下,您的功能配置看起来几乎正确。作为提示,您将在Twilio控制台中找到调试信息。

Link to Debugger in Twilio console

可能不正确的是,您将状态回调指向函数iteslf(https://pink-dragonfly-9052.twil.io/calls/events)。这应该是您的快速申请的URL。此应用程序必须公开可用,以便可以接收回调。

使用express时,您必须定义端点URL,例如your-domain.io/statuscallback并更改功能配置以指向此URL。

statusCallback: 'your-domain.io/statuscallback'

然后,路由器定义应类似于以下内容:

router.get('/statuscallback',function (req,res) {
  res.send('Birds home page')
})

如果您的应用程序仅在本地运行,则可以使用ngrok之类的工具使其公开可用。

我希望这会有所帮助。 :)

本文链接:https://www.f2er.com/3162589.html

大家都在问