2017-06-20 42 views
0

我正在使用twilio API和node.js成功记录和转录调用。我正在尝试在通话录制时实现回拨。按照twilio API,我指定我的回调URL:使用node.js从回调请求中获取参数并使用表达式

twiml.record({ 
    transcribe: false, 
    maxLength: 30, //seconds to record 
    recordingStatusCallback: 'http://[url]:3000/recorded' 
    }) 

documentation,我应该接受一些参数通过POST回来,所以我记录的请求和响应:

app.post('/recorded', (req, res) => { 
    console.log(req, res) 
}) 

我回到日志中是几个巨大的对象,我没有看到任何看起来像我期望的参数。我猜我应该构造不同的post函数来获取我需要的参数,但我不知道如何,并且我没有在Twilio或在线中看到任何文档,它显示了一个成功的回调函数是如何结构化的。

任何想法如何做到这一点?

回答

0

首先将“body-parser”模块添加到您的项目中。

npm install body-parser 

并在代码需要它:

var bodyParser = require('body-parser') 

现在启动服务器之前在代码中某处添加:

app.use(bodyParser.urlencoded({ extended: false })); //this will add extracting of the body for every request to express server 

之后,在你的职责,你在哪里试图找到数据,你可以得到它使用这样的代码:

app.post('/recorded', (req, res) => { 
    console.log(req.body); //body of the request in javascript object format 
}) 

查找更多关于'body-parser'模块的信息here

+1

Twilio以url编码的形式发送数据,所以你需要bodyParser的'urlencoded'中间件。我编辑了答案。您将在回调中收到的属性列在此处:https://www.twilio.com/docs/api/twiml/record#attributes-recording-status-callback。例如,您可能对'req.body.RecordingUrl'感兴趣。 – philnash

+0

谢谢!这工作。我知道这是一种语言/环境特定用例,但在线上添加此示例会很酷 – mheavers

相关问题