如何解决遵循Twilio教程记录电话:导致404 HTTP错误
我正在跟踪本教程链接的here,该教程结合了Twilio可编程语音和Express来记录呼入电话。我完全按照该教程进行操作,设置了一个ngrok公共服务器,将其连接到我的http:// localhost:3000,然后导航到我的ngrok链接时得到以下输出:
无法获取/
当我在终端中检查ngrok时,它会显示“ 404未找到”以获取GET(不在我的代码中)和POST请求。如果在代码中添加一个简单的GET请求(例如“ Hello World”),则在浏览器中,运行应用程序时会看到“ Hello World”。在终端中,GET能够成功,但是POST仍然返回“ 404 Not Found”。
我检查了其他几个堆栈溢出问题,我尝试按照建议的方式导入body-parser并添加以下两行:
const bodyParser = require('body-parser');
app.use(bodyParser.json());
供参考,我的目录中有一个record.js文件,package.json和package-lock.json文件以及必要的节点模块。在Twilio控制台中,我确实为Twilio#设置了一个Web钩子,以连接到ngrok链接,如下所示:http://39b62a0c34b1.ngrok.io。显示我的处决顺序:
- 在Mac终端中运行
./ngrok http 3000
- 在VS Code终端中运行
node record.js
- 导航到http://39b62a0c34b1.ngrok.io
- 给我的Twilio打电话
语音消息告诉我我的应用程序有问题。我检查了Twilio调试器,并收到一个11200错误,通知我我的ngrok链接返回了“ HTTP状态码为404”。
我对Node.js,Express和Twilio还是很陌生,因此不胜感激(请简化您的解释)!我希望有一天成为Twilio的开发人员。我非常想现在就犯错,以便将来对它们进行故障排除。
解决方法
Twilio对Webhhooks使用x-www-form-urlencoded
而不是JSON。
您将需要添加Express中间件来解析urlencoded
数据。
第三行:
// Body Parser Middleware
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
Where do I find the specifications for inbound HTTP requests to my server?
让我知道怎么回事。
仍不清楚为什么您会收到404-未找到。 app.post应该启动POST操作。 app.all
用于所有操作。您在测试中使用/ record路径吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。