FQL查询具有大量照片的Facebook用户的照片

时间:2012-10-19 20:52:48

标签: facebook facebook-graph-api facebook-javascript-sdk facebook-fql

我需要获取按喜欢排序的FB用户的照片。 我通过Facebook JavaScript SDK运行这个FQL查询来获取它们:

SELECT object_id, src_big, src_big_width, src_big_height, link, like_info, caption, created 
FROM photo 
WHERE owner = MANY_PICS_USER_ID ORDER BY like_info DESC LIMIT 10

对于超过3000张照片的用户,查询失败。事实证明,有很多这样的用户。相关的Facebook错误在http://developers.facebook.com/bugs/438568326189781

作为一个注释:删除“ORDER BY like_info”使查询工作,但我没有简单的方法来获取这些图片,按照喜欢排序

重现:
选择一个至少有3000张照片的FB好友,获取他们的用户ID,并在API GRAPH EXPLORER中运行上述查询(替换MANY_PICS_USER_ID)。

最佳解决方法是什么?或者,您能建议最简单的轻量级Open Graph解决方案吗?

1 个答案:

答案 0 :(得分:2)

要按照喜欢对照片进行排序,您需要以下内容:

返回以下数据结构:

"data": [
{
  "id": "1234567890", 
  "source": "http://photo.url.in.facebook.cdn.com/", 
  "created_time": "2012-09-13T22:52:34+0000", 
  "likes": {
    "data": [
      {
        "id": "1234567890", 
        "name": "Full Name"
      }, 
      .....
    "paging": {
      "next": "https://graph.facebook.com/1234567890/likes?limit=25&offset=25"
    }
  }
},
{
  "id": "312323232323", 
  "source": "PICTURE_URL", 
  "created_time": "2012-09-12T20:54:27+0000", 
  "likes": {
    "data": [..]
  }
},
....
"paging": {
  "previous": "http://PREVIOUS_URL?fields=id,source,name,height,width,link,likes&limit=100&since=123456", 
  "next": "http://NEXT_URL?fields=id,source,name,height,width,link,likes&limit=100&until=234567"
}
  • 如果图片总数超过100,请运行所有下一个查询, 从“下一个”链接开始,直到图片的数量将小于100。

  • 对于每张图片,您需要计算喜欢的总数。如果 喜欢的数量超过25,运行额外的查询 likes.paging.next直到喜欢的数量为< 25,得到 总数量。

  • 按照喜欢的数量对所有这些照片进行排序。

因此,对于拥有3000张照片的用户,每张照片共有30个电话+额外电话,超过25张。