Twilio“RecordingUrl”没有传递到我的解析云代码

问题描述:

我有一些PHP Twiml,成功地使呼叫和发射了一些解析云代码检索RecordingUrl之前将它们记录:Twilio“RecordingUrl”没有传递到我的解析云代码

$response->dial($callee, array(action=>"https://myApp.parseapp.com/handleRecording", 'callerId'=>$callerId, record=>true)); 

我解析云代码如下:

// Include Cloud Code module dependencies 
var express = require('express'), 
    twilio = require('twilio'); 

var app = express(); 
twilio.initialize("ACr245kl2hj54245245324","252k5kjk5j4525234252525252b54v5"); 

app.post('/handleRecording', function(request, response){ 
     //var recUrl = request.body.RecordingUrl + ".wav"; // This is 
     //var recUrl = request.params.RecordingUrl + ".wav"; // always nil 
     console.log(request); 
     console.log(response); 
     }); 

问题是没有响应正文,只有标题。状态码是200,但它也表示没有调用成功/错误。我在这里错过了什么?我希望一位着名的Twilio爱好者会来拯救,因为我浪费了一天的时间试图找到一个愚蠢的网址。输出如下:

结果:没有调用成功/错误 {“domain”:null,“_ events”:null,“_ maxListeners”:10,“method”:“POST”,“url”:“/handleRecording“‘标题’:{‘缓存控制’:‘最大年龄= 259200’,‘内容长度’:‘567’,‘内容类型’:”应用/ X WWW的窗体-urlencoded;字符集= UTF-8" , “宿主”: “myApp.parseapp.com”, “引用者”: “https://myAppsTwilioServer.herokuapp.com/twiml.php”, “用户代理”: “TwilioProxy/1.1”, “版本”: “HTTP/1.1”,”的x转发换 “:” 10.252.1.70" , “X-转发-原”: “HTTPS”, “X-twilio签名”: “24958u49843985934579kjkjdf45 =”}, “httpVersion”:[ “HTTP/1.1”, “1.1”], “连接”:{}, “originalUrl”: “/ handleRecording”, “_ parsedUrl”:{ “协议”:NULL, “斜线”:NULL, “AUTH”:空, “宿主”:空, “端口”:空, “主机名”:空, “哈希”:空, “搜索”:空, “查询”:空, “路径”: “/ handleRecording”, “路径”: “/ handleRecording”,“HREF “:”/ handleRecording “},” 查询 “:{},” RES “:{” domai N “:空,” _事件 “:空,” _ maxListeners “:10”,的StatusCode “:200,” headersSent “:假” sendDate “:真,” REQ “:{},” viewCallbacks “:[],” _hasConnectPatch “:真正},” _ ROUTE_INDEX “:0,” 路线 “:{” 拍拍...(截)

Twilio开发者传道这里。

Twilio sends data through a POST request,但它确实它作为形式编码的URL参数。你需要从原始的身体中解析出来。

通常的方式做到这一点是通过NPM安装快车的body-parser模块,然后用它来解析传入的请求机构,像这样:

var express = require('express'), 
    bodyParser = require('body-parser'), 
    twilio = require('twilio'); 

var app = express(); 
app.use(bodyParser.urlencoded({ extended: false })) 
twilio.initialize("{{ AccountSid }}","{{ AuthToken }}"); 

app.post('/handleRecording', function(request, response){ 
     //var recUrl = request.body.RecordingUrl + ".wav"; // This is 
     //var recUrl = request.params.RecordingUrl + ".wav"; // always nil 
     console.log(request); 
     console.log(response); 
     }); 

让我知道这是否有助于在所有。