我正在尝试通过 JavaScript 和 Graph API 从 facebook 获取专辑列表。我这样做是这样的:
FB.api('/me/albums', function(response){
//
});
专辑封面作为照片 ID 返回,而不是我可以插入 html 的网址。所以,我需要在第二步中获取一个网址。但是,通过应用程序设计,我以后无法获取 url 并插入图像。我需要返回一个带有专辑属性(id、name、cover url)的完整数据对象。我的最后一次尝试如下:
FB.api('/me/albums', { fields : 'id,name,count,cover_photo' }, function(response){
if (!response || response.error) {
callback.call(false);
return;
};
var parsed = $(response.data).map(function(){
if (this.count > 0) {
var result = {
aid : this.id,
title : this.name,
cover : this.cover_photo
};
return result;
};
});
for (var i = 0; i < parsed.length; i++) {
(function(i){
FB.api('/' + parsed[i].cover, { type : 'album' }, function(response){
parsed[i].thumb = response.picture;
});
})(i);
};
callback.call(parsed);
});
问题是循环没有等待覆盖查询并继续前进,使返回对象没有覆盖网址。我认为这并不难做到,但我找不到足够长的解决方案。欢迎任何想法。