下载在Twilio房间下载Twilio录制

我有一些代码来从Twilio下载一个录音

getRecordingMedia: function (recordingId) { var client = new Twilio(config.twillio.apiKey, config.twillio.apiSecret, { accountSid: config.twillio.accountId }); var uri = `https://video.twilio.com/v1/Recordings/${recordingId}/Media`; var response = client.request({ method: "POST", uri: uri }); var mediaLocation = JSON.parse(response.body).location; request.get(mediaLocation, (err, res, media) => { return media; }); } 

我得到以下错误:

SyntaxError:在位置0的JSON中出现意外的标记

我看了回应对象,其实是一个承诺。 所以,这似乎是文件是不正确的,它不处理承诺“then()”

我继续前进,改变了使用诺言的代码

  var response = client.request({ method: "POST", uri: uri }).then((object) => {console.log(object);}); 

而我其实有一个错误logging

{statusCode:405,body:'{“code”:20004,“message”:“方法不允许”,“more_info”:“ https://www.twilio.com/docs/errors/20004 ”,“状态” :405}'}

我查看了引用链接上的文档,但是这对我没有多大帮助。

此外,如果我打开我的浏览器中的urlhttps://video.twilio.com/v1/Recordings/${recordingId}/Media ,并input凭据,我得到的录音。

因此,需要帮助确定文档是否不正确(关于承诺 – https://www.twilio.com/docs/api/video/recordings-resource#code-retrieve-a-recording )以及为什么我得到与代码20004的错误。

谢谢

错误链接中的解释说明了这一切。 您正在使用错误的请求方法。

该文件说:

HTTP GET到/媒体子资源

HTTP POST不支持。

你的代码说:

 var response = client.request({ method: "POST", uri: uri }); 

所以当然,它在你的浏览器,因为浏览器发出GET请求…