2

我一直在使用以下 FQL,试图弄清楚如何获得我所有朋友的页面喜欢:

SELECT name FROM page WHERE page_id IN 
    (SELECT page_id FROM page_fan WHERE uid IN 
        (SELECT uid1, uid2 FROM friend WHERE uid1 = me())
    )

它在某种程度上符合我的喜好,但我无法分辨哪个“uid”属于哪个页面名称。返回类似以下内容:

{
  "data": [
    {
      "name": "Snoop Dogg"
    }, 
    {
      "name": "Good Grief"
    }, 
    {
      "name": "Aaliyah"
    }
  ]
}

我也尝试过使用 Graph API,但它超时了。有什么方法可以让我的结果看起来更像:

{
  "data": [
    {
      "uid" : "987234",
      "name": "Snoop Dogg"
    }, 
    {
      "uid" : "987234",
      "name": "Good Grief"
    }, 
    {
      "uid" : "234789",
      "name": "Aaliyah"
    }
  ]
}

提前致谢。

4

1 回答 1

3

/[Friend-ID]/likes 对我来说很好用。当然,要获得“friends_likes”的许可。这也适用于我,只是需要一些时间,因为它得到了每个朋友的喜欢:

SELECT page_id, name FROM page WHERE page_id IN 
   (SELECT page_id FROM page_fan WHERE uid IN 
   (SELECT uid1, uid2 FROM friend WHERE uid1 = me())
)

要将页面连接到用户,您需要一个 JOIN。无论如何,我更喜欢使用 Graph API 并仅为一个用户获取它。

如果您只需要Page的ID和User ID,那么如果您只使用第一个Sub-Select,还有一个更简单的方法:

SELECT uid, page_id FROM page_fan WHERE uid IN 
       (SELECT uid1, uid2 FROM friend WHERE uid1 = me())

不幸的是,FQL 中没有 JOIN,但是有 Multiqueries:

https://developers.facebook.com/docs/technical-guides/fql

因此,query1 将是上面的最后一个,query2 将是这样的:

SELECT page_id, name FROM page WHERE page_id IN (SELECT page_id FROM #query1)"
于 2012-11-26T15:14:47.430 回答