[英]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 控制台中找到調試信息。
可能不正確的是您將狀態回調指向 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.