我创建了一个网络钩子来接听 Twilio 语音电话。
var router = require('express').Router();
var twilio = require('twilio');
router.post("/voice", (request, response) => {
// var fs = require('fs');
// var util = require('util');
// fs.writeFileSync('./request.json', util.inspect(request.body), 'utf-8');
console.log(request.body);
console.log('Call received from ' + request.body.From);
//twimlAnswer();}
Run Code Online (Sandbox Code Playgroud)
webhook 和连接工作正常,但我试图访问 Twilio 通常在“请求”中提供的一些请求参数(与此示例类似的方式https://www.twilio.com/docs/tutorials/automated-survey -node-express#responding-to-a-phone-call )
我收到以下日志:
Express server listening on port 3000
undefined
TypeError: Cannot read property 'From' of undefined
at router.post
Run Code Online (Sandbox Code Playgroud)
你知道为什么我没有正确访问请求吗?我发现的大多数示例访问 request.body 都没有问题...
谢谢,
Twilio 开发人员布道者在这里。
Twilio 将 webhook 请求作为 URL 编码的表单参数发送。因此,要在 Express 中读取请求正文,您需要包含正文解析器模块并将应用程序设置为使用urlencoded解析器。有点像这样:
var router = require('express').Router();
var twilio = require('twilio');
var bodyParser = require('body-parser');
router.use(bodyParser.urlencoded({ extended: false }));
router.post("/voice", (request, response) => {
console.log('Call received from ' + request.body.From);
// respond to webhook
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
741 次 |
| 最近记录: |