首页 > 解决方案 > 在 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);

如何解决这个问题?在此处输入图像描述

标签: node.jsgoogle-cloud-firestoregoogle-cloud-functionstwilio

解决方案


看起来您的 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。


推荐阅读