簡體   English   中英

如何接收 Twilio statusCallback

[英]How to receive Twilio statusCallback

我正在嘗試在我的 web 應用程序中構建狀態回調。 我已經設置了 Twilio function:

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

我正在嘗試在我的應用程序后端接收狀態回調:

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

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

但是后端路由器沒有收到響應。 我已經在我'https://pink-dragonfly-9052.twil.io/calls/events'作為狀態回調 URL。

那我如何接收狀態回調呢?

非常感謝。

Twilio 開發人員布道師在這里!

快速瀏覽一下,您的 function 配置看起來幾乎正確。 作為提示,您可以在 Twilio 控制台中找到調試信息。

鏈接到 Twilio 控制台中的調試器

可能不正確的是您將狀態回調指向 function iteslf ( https://pink-dragonfly-9052.twil.io/calls/events )。 這應該是您的快速應用程序的 URL。 此應用程序必須是公開可用的,以便可以接收回調。

使用 express 您必須定義端點 URL ,例如your-domain.io/statuscallback並將您的 function 配置更改為指向此 ZE6B391A8D2C4D45902A23A8B6585703。

statusCallback: 'your-domain.io/statuscallback'

路由器定義應該是這樣的:

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

如果您的應用程序僅在本地運行,您可以使用ngrok之類的工具使其公開可用。

我希望這有幫助。 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM