【问题标题】:Getting all links of any sort shared by a user's facebook friends获取用户的 facebook 好友共享的任何类型的所有链接
【发布时间】:2014-04-19 00:54:14
【问题描述】:

我正在尝试获取用户朋友共享的所有链接我尝试了以下问题中的所有查询和请求,

How do I get a friend's links with Facebook's graph api?

Finding who shared a link publicly and finding who reshared a given link

Facebook API: All links shared by all friends?

get shared links on facebook newsfeed

但无法弄清楚确切的 FQL 或请求 URL 是什么,以从我的朋友在过去定义的时间间隔内共享所有链接。我是图形 API 和 FQL 的新手,所以请帮我想办法做到这一点。

我尝试了一个简单的查询

SELECT link_id, owner, owner_comment, created_time, title, summary, url, image_urls FROM link WHERE owner IN (SELECT uid2 FROM friend WHERE uid1 = me() LIMIT 100) 

但我明白了

{
  "error": "Request failed"
}

作为来自 API Explorer 的响应。

【问题讨论】:

    标签: facebook-graph-api facebook-fql


    【解决方案1】:

    您的查询太长,FQL 无法构建答案。如果你想试试这个:

    SELECT link_id, owner, owner_comment, created_time, title, summary, url, image_urls
           FROM link WHERE owner IN 
           (SELECT uid2 FROM friend WHERE uid1 = me() LIMIT 10)
    

    (相同的查询,仅限制设置为 10 而不是 100)FQL 资源管理器会认为 ~5-8 秒,然后会给你返回结果。或者如果您不会收到结果,您必须再次降低限制。

    所以你有两个选择:

    1. 您可以将限制从 100 降低到 10 或更少,并且无需更改即可运行查询
    2. 你可以运行查询

      从朋友那里选择 uid2,其中 uid1 = me()

    然后为每个收到的朋友 ID 运行另一个查询

    SELECT link_id, owner, owner_comment, created_time, title, summary, url, image_urls
           FROM link WHERE owner = FRIEND_ID
    

    【讨论】:

    • 我猜你是对的,我尝试将查询限制为 10,甚至限制为 2,但请求失败。我厌倦了第二个选择,它似乎工作正常,但它有进行如此多的服务调用的开销。无论如何,目前最好的解决方案就是这个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    • 1970-01-01
    • 1970-01-01
    • 2014-07-10
    相关资源
    最近更新 更多