如何使用FQL获取所有朋友的页面

时间:2012-11-26 04:50:49

标签: facebook facebook-fql

我一直在使用以下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"
    }
  ]
}

提前致谢。

1 个答案:

答案 0 :(得分:3)

/ [Friend-ID] /喜欢对我有用。当然,获得“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())
)

要将页面连接到用户,您需要加入。在任何情况下,我都希望使用Graph API并仅为一个用户获取它。

如果您只需要页面的ID和用户ID,如果您只使用第一个子选择,则有一种更简单的方法:

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

不幸的是,FQL中没有JOIN,但有多个查询:

  

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)"