下载在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请求…