FQL - 获取Facebook用户专辑封面和图片数量

时间:2012-05-01 11:00:16

标签: php facebook facebook-fql

是否可以获取所有用户专辑封面+每张专辑的图片数量?

我可以通过以下方式获得用户相册封面:

SELECT aid, pid, src_small, src, src_big FROM photo WHERE aid IN(SELECT aid FROM album WHERE owner=me()

但我想在每张专辑中也多少张图片 ....

我可以运行一个循环所有用户专辑,并为每个专辑运行另一个FQL,但如果有更好的方法更快/更有效,我会徘徊

有什么建议吗?

谢谢, Gtamir

2 个答案:

答案 0 :(得分:1)

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

}

答案 1 :(得分:0)

每张专辑中的图片数量在“相册”表格的“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);

我没有亲自测试过代码,但它应该是那样的