给定一个录制 SID,我如何将录制文件下载到本地驱动器(使用 Twilio 节点帮助程序库)?
Posted
技术标签:
【中文标题】给定一个录制 SID,我如何将录制文件下载到本地驱动器(使用 Twilio 节点帮助程序库)?【英文标题】:Given a recording SID, how can I download the recording file to local drive (using Twilio node helper library)? 【发布时间】:2015-03-07 04:54:14 【问题描述】:我正在使用 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
如果我在 SID 的末尾添加一个“.mp3”并不重要,我总是会得到一个 JSON。
理想情况下我想写这样的东西:
var file = fs.createWriteStream('/Users/yasemin/Desktop/rec.mp3');
twilioClient.recordings('RE01234567890123456789012345678901')
.get(function (err, recording)
if(!err) recording.pipe(file); );
谢谢!
【问题讨论】:
【参考方案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
);
);
【讨论】:
【参考方案2】:TLDR:Node Helper Library 目前没有重新编码的文件下载功能。
这是来自 Twilio 支持的回复:
查看我们门户网站上的文档,您肯定是 正确,可以通过 API 调用下载 .wav 或 .mp3。 但是,从我在这里看到的 Node 示例代码中可以看到:
https://www.twilio.com/user/account/developer-tools/api-explorer/recording
还有来自 Twilio-Node 开发人员的文档:
http://twilio.github.io/twilio-node/#recordings
在我看来,帮助程序库实际上并不支持直接 下载,只是查看记录数据。你可以下载 通过 HTTP 调用应用程序,如原始文档链接所示 您在 *** 问题上注明。如果您需要帮助,请告诉我 用那个。
与此同时,我已经联系了该库的作者以查看 如果这是设计使然,或者是要添加到库中的功能。它是 当然是开源的,所以你可以自己拉动并添加它,如果 你喜欢!
【讨论】:
以上是关于给定一个录制 SID,我如何将录制文件下载到本地驱动器(使用 Twilio 节点帮助程序库)?的主要内容,如果未能解决你的问题,请参考以下文章