You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Twilio WhatsApp沙箱无消息响应问题排查求助

故障原因分析
  1. 405 Method Not Allowed错误:你的Glitch项目server.js中未配置/webhook路径的POST请求处理逻辑,导致Twilio发送的POST请求被服务器拒绝。
  2. URI为null(错误码11200):这是405错误引发的连锁问题——服务器未返回Twilio预期的TwiML响应,Twilio无法识别有效回调结果,因此抛出该错误。
解决方法

步骤1:修正server.js代码

确保同时支持GET和POST请求到/webhook,并正确返回Twilio所需的TwiML格式响应:

const express = require('express');
const bodyParser = require('body-parser');
const app = express();

// 解析Twilio发送的表单数据
app.use(bodyParser.urlencoded({ extended: false }));

// 处理Twilio消息回调(POST请求)
app.post('/webhook', (req, res) => {
  const incomingMessage = req.body.Body;
  // 构造回复的TwiML
  const twimlResponse = `
    <Response>
      <Message>Hola, recibimos tu mensaje: ${incomingMessage}</Message>
    </Response>
  `;
  res.set('Content-Type', 'text/xml');
  res.send(twimlResponse);
  console.log(`收到消息:${incomingMessage}`); // 日志输出用于调试
});

// 处理状态回调(GET请求)
app.get('/webhook', (req, res) => {
  res.status(200).send('Webhook服务正常');
});

const port = process.env.PORT || 3000;
app.listen(port, () => {
  console.log(`服务器运行在端口 ${port}`);
});

步骤2:确认package.json依赖

确保项目包含express和body-parser依赖,package.json内容示例:

{
  "name": "[my-project]-glitch-app",
  "version": "1.0.0",
  "main": "server.js",
  "scripts": {
    "start": "node server.js"
  },
  "dependencies": {
    "express": "^4.18.2",
    "body-parser": "^1.20.2"
  }
}

步骤3:部署测试

  1. 重启Glitch项目,确认日志显示服务器正常启动
  2. 用Postman向https://[my-project].glitch.me/webhook发送POST请求,设置Body为x-www-form-urlencoded格式,添加Body参数并填入测试内容,验证返回200状态码和正确的TwiML
  3. 用已验证的号码向Twilio沙箱号码发送消息,确认收到预期回复,且Glitch日志有消息记录

额外注意事项

  • 确保Twilio沙箱配置中,「收到消息时的Webhook」请求方法为POST,「状态回调URL」请求方法为GET,与代码逻辑对应
  • 检查Glitch项目隐私设置,确保项目为公开可访问状态(默认公开,若设为私有需调整权限)

内容的提问来源于stack exchange,提问作者m b

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 06:10:18