在Twilio Rooms中下载Twilio Recording的问题

时间:2017-10-05 14:31:06

标签: node.js twilio twilio-api

我有一些代码可以从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中的意外标记u

我查看了响应对象,它实际上是一个承诺。因此,从某种意义上说,文档似乎不正确,因为它没有处理承诺“then()”

我继续并改变了代码以使用承诺

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

我确实记录了一个错误

  

{statusCode:405,     body:'{“code”:20004,“message”:“Method not allowed”,“more_info”:“https://www.twilio.com/docs/errors/20004”,“status”:405}'}

我查看了推荐链接上的文档,但它对我没什么帮助。

此外,如果我在浏览器中打开网址https://video.twilio.com/v1/Recordings/${recordingId}/Media并输入凭据,我就会进行录制。

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

由于

1 个答案:

答案 0 :(得分:3)

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

文档说:

  

HTTP GET到/ Media子资源

     

HTTP POST   不支持。

您的代码说:

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

当然,它可以在您的浏览器中运行,因为浏览器会发出GET请求...