在 Twilio 房间中下载 Twilio 录制时出现问题
Posted
技术标签:
【中文标题】在 Twilio 房间中下载 Twilio 录制时出现问题【英文标题】:Issue downloading Twilio Recording in Twilio Rooms 【发布时间】: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 的错误。
谢谢
【问题讨论】:
【参考方案1】:错误链接中的解释说明了一切。您使用了错误的请求方法。
文档说:
HTTP GET 到 /Media 子资源
HTTP POST 不支持。
你的代码说:
var response = client.request( method: "POST", uri: uri );
所以它当然可以在您的浏览器中使用,因为浏览器会发出 GET 请求...
【讨论】:
谢谢,代码示例实际上显示为 POST,我使用 GET 让它工作,当然这似乎是代码示例的偏差,因为它返回一个位置值,它不是重定向。执行 GET 会进行重定向,您需要使用 redirect_to 值。 啊,是的,甚至没有看代码。我不是第一次看到他们的例子与他们的文档相矛盾。很高兴你把它整理好了。 这里是 Twilio 开发人员传道者。我们一直在努力改进我们的文档,很抱歉这个文档被破坏了两次。我现在要提交一个拉取请求来更新这个。以上是关于在 Twilio 房间中下载 Twilio 录制时出现问题的主要内容,如果未能解决你的问题,请参考以下文章
给定一个录制 SID,我如何将录制文件下载到本地驱动器(使用 Twilio 节点帮助程序库)?
在 twilio mp3 录制 url 上进行范围请求时,接受范围设置为无