我正在学习nodejs。 我试图从手机上传相册下载我的所有照片。 我使用了' fb'图api的npm模块。我只收到了25张照片,但在我的相册中有300多张照片。 我如何获得所有照片?
var _ = require('underscore');
var request = require('request');
var FB = require('fb');
var fs = require('fs');
var my_token = "xyz";
FB.setAccessToken(mt_token);
var urls = [];
FB.api('/me/albums','get', function (res) {
if(!res || res.error) {
console.log(!res ? 'error occurred' : res.error);
return;
}
var data = _.findWhere(res.data, {name:"Mobile Uploads"});
FB.api('/'+data.id+'/photos', 'get', (resp) => {
if(!resp || resp.error) {
console.log(!resp ? 'error occurred' : resp.error);
return;
}
resp.data.forEach(function(element) {
urls.push(element.source);
});
for(var i = 0;i<urls.length;i++){
request(urls[i]).pipe(fs.createWriteStream('img/'+i+'.jpg'));
console.log("Downloaded : "+i+'.jpg');
}
});
});
答案 0 :(得分:0)
最终使用request
模块得到它facebook api对我不起作用
function downloadLoop(urls) {
for(i;i<urls.length;i++){
request(urls[i]).pipe(fs.createWriteStream('img/'+(i+1)+'.jpg')).on('finish', function(response) {
console.log("Download Completed : "+(++j)+'/'+i);
});
}
}
function download(next) {
request({
url: next,
json: true
}, function(err, res, body) {
if(err) throw err;
for (var i = 0; i < body.data.length; i++) {
urls.push(body.data[i].images[0].source);
}
console.log("getting images... Total Image : "+ urls.length);
if(body.paging && body.paging.next) {
download(body.paging.next);
} else {
console.log("Completed");
}
downloadLoop(urls);
});
}