使用FQL获取所有用户的喜欢(所有这些)

时间:2011-06-30 00:39:04

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

我正试图通过FQL获得所有用户的喜欢。以下是我的研究,包括我尝试过的以及每次尝试的问题。

1)最简单的方法是查询uid上的表。所以这会在其他人的流上返回57(对我而言)。

SELECT object_id, post_id, user_id
FROM like
WHERE user_id = me()

XML看起来像这样(注意无法解释的post_id缺席)

<like>
    <object_id>10150695050005313</object_id>
    <post_id></post_id>
    <user_id>xxxxxxxxxxx</user_id>
</like>

上述似乎是合乎逻辑的步骤,但Facebook doesn't index the user_id field因此我无法使用以下代码获取更多详细信息。此代码不起作用。

SELECT post_id, message
FROM stream
WHERE post_id IN (
    SELECT object_id, post_id, user_id
    FROM like
    WHERE user_id = me()
)

2)使用Graph API:/ me / likes /检索95个粉丝页面上的信息,但不是来自照片,视频,链接或离线内容的信息。完整网址为:https://graph.facebook.com/me/likes?access_token=

例如:

{
"data": [
  {
     "name": "BStU",
     "category": "Organization",
     "id": "136978696319967",
     "created_time": "2011-06-29T12:09:17+0000"
  },
  {
     "name": "Euchre",
     "category": "Interest",
     "id": "112355915446795",
     "created_time": "2011-06-29T12:06:07+0000"
  },

3)此FQL返回与上面的代码相同的95个粉丝页面:

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

总而言之,理想情况下,无论对象如何,我都能够为用户返回所有相似内容。我愿意继续使用粉丝页面和流媒体文章,如果我可以通过一个FQL查询返回所有内容以及数据。

有什么建议吗?我将补充一点,我试图在不使用REST API的情况下这样做,因为它会降级(有一天?)因此使用fql.multiquery不是一种选择。

3 个答案:

答案 0 :(得分:2)

我已经能够使用FQL来获取流中的一些,但不是全部。请参阅:http://facebook.stackoverflow.com/questions/8496980/fql-like-table-not-returning-any-results

我得到的查询是:

1)为我提供了我喜欢的网页Feed项目:

 SELECT post_id, source_id, message 
   FROM stream 
  WHERE source_id 
     IN (SELECT target_id FROM connection WHERE source_id=me() and is_following=1) 
    AND likes.user_likes=1 
  LIMIT 10

2)从我自己发布的Feed中为我提供了我喜欢的精选项目:

 SELECT post_id, source_id, message 
   FROM stream 
  WHERE source_id=me() 
    AND likes.user_likes=1 
  LIMIT 10

令我讨厌的是,我无法从事件流项目,朋友流项目,组流项目等的流项目中获取用户喜欢。即使我已为该用户接受了所有权限。这不像我要求提供秘密信息。当然,用户可以通过我的应用程序喜欢和删除流项目的喜欢。只是我无法查询用户喜欢的当前流项目的完整列表。

答案 1 :(得分:1)

抱歉,您无法使用/likes端点获取所有人的喜欢。我们将它限制为任何具有FB页面的东西,这是任何打开的图形对象,没有文章。例如,如果您喜欢og:type article的开放图表对象,我们不会在图表api likes端点中返回该对象。

答案 2 :(得分:0)

尝试此FQL查询:

SELECT user_id, object_id, post_id, object_type 
FROM like 
WHERE user_id = me()