Facebook Graph API:如何过滤家庭和放大器按申请提供?

时间:2011-10-27 01:15:47

标签: facebook facebook-graph-api

Facebook Graph API可让您获取家庭的JSON表示(新闻Feed)&饲料(墙)。

如何获取我的Facebook应用程序发布的帖子?

3 个答案:

答案 0 :(得分:11)

Facebook通过传递me/home参数,添加了对不使用FQL过滤filter帖子的支持。

例如,只需获取照片即可: me/home?filter=app_2305272732

完整文档在此处:http://developers.facebook.com/docs/reference/api/user/#home

答案 1 :(得分:2)

您现在可以使用Facebook Query Language (FQL)(基本网址:https://graph.facebook.com)运行Facebook Graph API次查询。

假设您的应用程序是Twitter。 Twitter的Facebook应用程序ID为2231777543。

我在@danontheline's answer的帮助下想出了下面的FQL查询,并仔细阅读了FQL stream上的Facebook文档。 FQL stream_filter

以下摘录特别相关:

  

如果您从filter_key FQL表中指定stream_filter或   多个用户,返回的结果将像用户的主页一样   新闻提要。如果只有一个用户被指定为source_id,那么你将会这样做   接收用户或页面的个人资料视图。你可以过滤这些   个人资料通过指定filter_key'其他人'来查看帖子(仅返回   由指定用户以外的其他人发布的帖子或“所有者”   (仅返回指定用户发布的帖子)。个人资料视图,   与主页视图不同,返回数据库中的旧数据。在   在页面的情况下,个人资料视图还包括粉丝的帖子。

您的Facebook新闻Feed上的Twitter推文

GET /fql?q=SELECT post_id, actor_id, message, app_id, attribution FROM stream WHERE filter_key = 'app_2231777543'

Twitter推文在你的Facebook墙上

GET /fql?q=SELECT post_id, actor_id, message, app_id, attribution FROM stream WHERE source_id = me() AND app_id = '2231777543' LIMIT 1000

使用Facebook Graph API Explorer运行这些查询会返回Facebook Graph API post个对象(结果集会因access_token,隐私等而有所不同)。您可以通过将流表的其他列添加到上面的查询和/或通过向上面的FQL流查询返回的eache GET /{post_id}post_id发出另一个Graph API请求来查找有关每个帖子的更多信息。

答案 2 :(得分:1)

Afaik使用 图谱API无法实现。但您也可以使用FQL语句来检索墙/ Feed。使用这种技术,您可以将其重新绑定到一个actor_id发出的帖子(在这种情况下应该是您的应用ID):

SELECT post_id, target_id, message FROM stream WHERE filter_key in (SELECT filter_key FROM stream_filter WHERE uid=me() AND type='newsfeed') AND is_hidden = 0 AND actor_id = 'MattDiPasqualesAppID'

这里的内容是它不会返回JSON,而是返回结果的XML表示。使用phps DOM class,您可以轻松地将其转换为JSON格式或您希望获得结果的任何其他表示形式!

正如您可能正在使用PHP处理整个事情一样,您也可以使用json数组,将其解析为数组并使用appID的键过滤数组。