无法使用带有nodejs的fb graph api从facebook相册中获取所有图像?

时间:2016-07-25 19:26:20

标签: node.js facebook facebook-graph-api request fs

我正在学习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');
}

  });
});

enter image description here 感谢名单

1 个答案:

答案 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);
        });
}

Github Link