2017-10-05 197 views
1

我有一些代碼從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: Unexpected token u in JSON at position 0

我看着響應對象和它實際上是一個諾言。因此,它似乎像文檔是不正確的,即它不處理的承諾「那麼()」

我繼續改變了代碼使用承諾

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,並輸入憑據,我會記錄。

因此,需要搞清楚的幫助,如果該文件是不正確的(以諾 - https://www.twilio.com/docs/api/video/recordings-resource#code-retrieve-a-recording)爲什麼林收到錯誤代碼爲20004.

感謝

回答

3

錯誤鏈接的交代說:這一切。您正在使用錯誤的請求方法。

文檔說:

HTTP GET to /Media subresource

HTTP POST Not supported.

您的代碼表示:

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

所以當然它工作在你的瀏覽器,爲瀏覽器作出的GET請求......

+0

謝謝,代碼示例實際上顯示爲POST,我使用GET得到它的工作,當然這似乎是代碼示例的偏差,因爲它會返回位置值,而不是重定向。做GET做重定向,你需要使用redirect_to的值。 – pmeyer

+0

啊,是的,甚至沒有看代碼。這不是我第一次看到他們的例子與他們的文檔矛盾。很高興你把事情解決了。 – miknik

+0

Twilio開發者傳福音在這裏。我們一直在努力改進我們的文檔,對不起,這一個被打破了兩次。我現在要提交一個pull請求來更新這個權限。 – philnash