我正在使用Twilio Node Helper Library拨打电话并进行录制。
根据API link,GET应该返回一个WAV文件,但在我的情况下,它只返回带有记录元数据的json。
这就是我写的:
twilioClient = require('twilio')(config.twilio.acct_sid, config.twilio.auth_token)
var request = twilioClient.recordings('RE01234567890123456789012345678901')
get(function (err, recording){ // <- this "recording" is JSON
如果我将'.mp3'添加到SID的末尾并不重要,我总是得到一个JSON。
理想情况下,我想写下这样的内容:
var file = fs.createWriteStream('/Users/yasemin/Desktop/rec.mp3');
twilioClient.recordings('RE01234567890123456789012345678901')
.get(function (err, recording) {
if(!err){ recording.pipe(file); }});
谢谢!
答案 0 :(得分:1)
TLDR:Node Helper Library目前还没有重新编码文件下载功能。
这是Twilio支持的回复:
查看我们门户网站上的文档,您当然是 正确,可以通过API调用下载.wav或.mp3。 但是,从我可以看到的节点示例代码:
https://www.twilio.com/user/account/developer-tools/api-explorer/recording
来自Twilio-Node开发人员的文档:
http://twilio.github.io/twilio-node/#recordings
在我看来,助手库实际上并不支持直接 下载,只查看录制数据。你可以下载 应用程序通过HTTP调用,如原始文档链接中所示 您在Stackoverflow问题上注意到了。如果您需要帮助,请告诉我 那个。
与此同时,我已经联系了图书馆的作者 如果这是设计或要添加到库中的功能。它&#39; S 当然是开源的,所以你可以自己动手并添加它 你喜欢!
答案 1 :(得分:1)
我遇到过这个并且必须开发自己的代码来处理这个问题。
以下是我在下面提出的代码
con.on('getvmx', function(data){
comModel.find({_id: data.id}, function(err, results){
var https = require('https');
var options = {
host: 'api.twilio.com',
port: 443,
path: '/2010-04-01/Accounts/' + sid + '/Recordings/'+ results[0].sid + '.mp3',
method: 'GET',
auth: sid + ":" + auth,
agent: false
};
var req = https.request(options, function(res) {
res.setEncoding('binary');
var mp3data = '';
res.on('data', function (chunk) {
mp3data += chunk;
});
res.on('end', function(){
try{
var fileName = "/var/www/tcc/public/vm/" + results[0].sid + '.mp3';
fs.writeFile(fileName, mp3data, 'binary', function(err){
if(err){
return console.log(err);
}else{
console.log("File Saved");
con.emit('vmload', results);
}
});
}catch(err){
console.log(err.message);
}
});
});
req.end();
console.log(results);
//load all messages
//load line from reach message
});
});