是否可以获取所有用户的专辑封面+每个相册的图片数量?
我可以通过以下方式获取用户专辑封面:
SELECT aid, pid, src_small, src, src_big FROM photo WHERE aid IN(SELECT aid FROM album WHERE owner=me()
.
但我还想得到每个相册中有多少张照片......
我可以运行一个循环所有用户相册,并为每个相册运行另一个 FQL,但如果有更好的方法可以更快/更高效地做到这一点,我会徘徊
有什么建议吗?
谢谢格塔米尔
function getAlbum() {
FB.api('/me/albums', function(resp) {
console.log('Albums', resp);
var ul = document.getElementById('albums');
for (var i=0, l=resp.data.length; i<l; i++) {
var
album = resp.data[i],
li = document.createElement('li'),
span = document.createElement('span'),
a = document.createElement('a');
a.innerHTML = album.name;
span.innerHTML = album.count;
li.appendChild(a);
li.appendChild(span);
ul.appendChild(li);
}
});
}
每个
相册中的图片数量在"相册"表的"photo_count"属性中可用,因为您需要来自"照片"表的照片信息,并且 FQL 不支持连接表,因此唯一的问题是使用多查询
$multiQuery = {
"query1":"SELECT aid,owner,name,photo_count,type,object_id FROM album WHERE owner IN (SELECT uid2 FROM friend WHERE uid1 = me())",
"query2":"SELECT aid, pid, src_small, src, src_big FROM photo WHERE aid IN(SELECT aid FROM album WHERE owner=me())"
};
$param = array(
'method' => 'fql.multiquery',
'queries' => $multiQuery,
'callback' => '');
$queryresults = $facebook->api($param);
我没有亲自测试过代码,但它应该是这样的