【问题标题】:Get all of a user's likes (all of them) with FQL使用 FQL 获取用户的所有喜欢(全部)
【发布时间】:2011-06-30 00:39:04
【问题描述】:

我正在尝试使用 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

【问题讨论】:

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


    【解决方案1】:

    我已经能够使用 FQL 来获得一些(但不是全部)流喜欢的内容。见:http://facebook.stackoverflow.com/questions/8496980/fql-like-table-not-returning-any-results

    我得到的查询是:

    1) 在页面供稿上为我提供我喜欢的流媒体项目:

     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) 从我自己发布的提要中为我提供我喜欢的流媒体项目:

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

    烦人的是我无法从事件流项目、朋友流项目、组流项目等的流项目中获得用户喜欢。即使我已接受该用户的所有权限。这不像是我在询问秘密信息。当然,用户可以通过我的应用喜欢和删除喜欢的流项目。只是我无法查询到当前用户点赞的流项目的完整列表。

    【讨论】:

      【解决方案2】:

      抱歉,您无法使用/likes 端点获取所有喜欢的人。我们将其限制为任何具有 FB 页面的内容,即任何打开的图形对象,无文章。例如,如果您喜欢具有og:typearticle 的开放图形对象,我们不会在图形API likes 端点中返回它。

      【讨论】:

      • 嗨,杰夫,限制用户对他人(私人)图片的喜欢是有道理的,但为什么用户不能访问他们喜欢的公开内容?本质上,这与 reddit 或 stumbleupon 相同,它允许用户跟踪他们在社交网络中在线阅读的内容。
      • @Jeff,我很困惑,您是说当且仅当我们应用的经过身份验证的用户是演员、电影或运动队时,Facebook 才会让我们的应用查询点赞表?
      • 不,我是说除了文章之外的任何东西你都可以点赞。
      • 我从我自己发布的信息流项目(我喜欢的)以及我在页面信息流中喜欢的任何信息流项目中获得了点赞。 (您可以在我发布到这个问题的答案中看到我正在使用的 FQL)。我缺少的是我在事件流、组流和朋友流中喜欢的流项目。我不确定您所说的“文章”是什么意思。你能解释一下我能从他们那里得到什么类型的赞吗?以及如何获得它们?
      • 这听起来与原始问题/问题不同。最好打开一个新问题。
      【解决方案3】:

      试试这个 FQL 查询:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-14
        • 1970-01-01
        相关资源
        最近更新 更多