gpt4 book ai didi

javascript - 如何接收 Twilio 状态回调

转载 作者:行者123 更新时间:2023-12-02 22:37:18 25 4
gpt4 key购买 nike

我正在尝试在我的网络应用程序中构建状态回调。我已经设置了 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);
}

我正在尝试在应用程序的后端接收状态回调:

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.twl.io/calls/events' url 作为状态回调 URL。

那么我如何接收状态回调?

非常感谢。

最佳答案

这里是 Twilio 开发者布道者! 👋

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

Link to Debugger in Twilio console

可能不正确的是,您将状态回调指向函数iteslf (https://pink-dragonfly-9052.twl.io/calls/events)。这应该是您的 Express 应用程序的 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 的工具使其公开。

我希望这有帮助。 :)

关于javascript - 如何接收 Twilio 状态回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58703812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com