无法检索/下载实际录制的媒体Twilio

const Twilio = require('twilio'); const request = require('request'); const apiKeySid = 'SKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; const apiKeySecret = 'your_api_key_secret'; const accountSid = 'ACb46a83261c60f3a45ce47eccac8a913d'; const client = new Twilio(apiKeySid, apiKeySecret, { accountSid: accountSid }); const roomSid = 'RMXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; const recordingSid = 'RTXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; const uri = 'https://video.twilio.com/v1/' + `Rooms/${roomSid}/` + `Recordings/${recordingSid}` + '/Media'; const response = client.request({ method: "POST", uri: uri }); const mediaLocation = JSON.parse(response.body).location; request.get(mediaLocation, (err, res, media) => { console.log(media); }); 

我试图检索录制的媒体,但这不工作,并得到undefined当我打印response.body。

Twilio开发者在这里传道。

道歉,这是我们的文件中的错误。 调用client.request是一个asynchronous调用,并返回一个Promise

试试这个:

 client.request({ method: "GET", uri: uri }).then(response => { const mediaLocation = JSON.parse(response.body).location; request.get(mediaLocation, (err, res, media) => { console.log(media); }); }); 

我已经开始了一个拉取请求,以便将其返回到文档中 。

@philnash我试过这个代码块,但得到“mediaLocation”未定义。

更改JSON.parse(response.body).locationJSON.parse(response.body).redirect_to ,它的工作。

  client.request({ method: "GET", uri: uri }).then((response) => { const mediaLocation = JSON.parse(response.body).redirect_to; request.get(mediaLocation, (err, res, media) => { console.log(media); }); }); 

响应:

 { statusCode: 302, body: '{"redirect_to": "https://xxxxxxxxxxxxx.s3.amazonaws.com/xxxxxxxxxxxxxxxxxxxxx…….”}' }