node.js - 在 Twilio 中调用系统回调时出现 11200 Http 检索错误
问题描述
我想获取 Twilio 发送的消息的传递状态。所以我使用了系统回调。但它会引发错误,即;对 StatusCallback URL 的请求不成功。状态为 404。如何从 Twilio 获取消息状态和 200 响应。这是我的 Webhook 代码。我使用了 node.js :
const http = require('http');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/MessageStatus', (req, res) => {
console.log("entered inti");
const messageSid = req.body.MessageSid;
const messageStatus = req.body.MessageStatus;
console.log(`SID: ${messageSid}, Status: ${messageStatus}`);
res.set('Content-Type', 'text/plain')
res.sendStatus(200).end();
});
http.createServer(app).listen(1337, () => {
console.log('Express server listening on port 1337');
});
exports.TwilioSMSWebhook = functions.https.onRequest(app);
解决方案
看起来您的 Express 服务器正在侦听端口 1337,您是否告诉 Twilio 发送到 statusCallback URL 中的这个特定端口(否则 https 的默认端口是 443)?此外,在另一个注意事项中,statusCallback 应该返回一个 204 或一个 200 且 TwiML 为空,如下所述。
状态回调 https://www.twilio.com/docs/sms/twiml#status-callbacks
您可以随时使用 Postman 之类的工具测试我们的 URL,看看为什么它可能会返回 404 - Not Found。
推荐阅读
- android - RxJava 在另一个线程上运行任务
- java - 创建一个字符串数组,初始化为一周中的 7 天
- java - 在我的Springboot项目中,如何使用@Value注解来获取Properties文件中的属性值
- javascript - 理解JS中的高阶函数:下面的代码如何保证代码只会被调用一次?
- mysql - 如何用另一列填充一个表列 CONCAT join select from another table?
- kubernetes - 什么是种类:在 kubernetes 中测试
- json - 在 MongoDB 中查询嵌套的 JSON
- r - 使用 renderUI() 中的响应值更新 renderPlot()
- reactjs - 反应,当某些功能运行时,我的 javascript 代码变慢
- flutter - 使用颤振建立投资组合网站是个好主意吗