【问题标题】:Issue downloading Twilio Recording in Twilio Rooms在 Twilio 房间中下载 Twilio 录制时出现问题
【发布时间】:2018-03-17 05:25:45
【问题描述】:

我有一些代码可以从 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);});

我实际上记录了一个错误

{状态码:405, body: '{"code": 20004, "message": "Method not allowed", "more_info": "https://www.twilio.com/docs/errors/20004", "status": 405}' }

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

另外,如果我在浏览器中打开 url https://video.twilio.com/v1/Recordings/${recordingId}/Media 并输入凭据,我将获得录音。

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

谢谢

【问题讨论】:

    标签: node.js twilio twilio-api


    【解决方案1】:

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

    文档说:

    HTTP GET 到 /Media 子资源

    HTTP POST 不支持。

    你的代码说:

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

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

    【讨论】:

    • 谢谢,代码示例实际上显示为 POST,我使用 GET 让它工作,当然这似乎是代码示例的偏差,因为它返回一个位置值,它不是重定向。执行 GET 会进行重定向,您需要使用 redirect_to 值。
    • 啊,是的,甚至没有看代码。我不是第一次看到他们的例子与他们的文档相矛盾。很高兴你把它整理好了。
    • 这里是 Twilio 开发人员传道者。我们一直在努力改进我们的文档,很抱歉这个文档被破坏了两次。我现在要提交一个拉取请求来更新这个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    • 1970-01-01
    相关资源
    最近更新 更多