【发布时间】:2011-10-27 01:15:46
【问题描述】:
Facebook Graph API 可让您获取主页(新闻提要)和提要(墙)的 JSON 表示。
如何获取我的 Facebook 应用发布的帖子?
【问题讨论】:
标签: facebook facebook-graph-api
Facebook Graph API 可让您获取主页(新闻提要)和提要(墙)的 JSON 表示。
如何获取我的 Facebook 应用发布的帖子?
【问题讨论】:
标签: facebook facebook-graph-api
Facebook 通过传递 filter 参数增加了对过滤 me/home 帖子的支持,而无需使用 FQL。
例如,仅获取照片,您可以执行以下操作:
me/home?filter=app_2305272732
完整文档在这里:http://developers.facebook.com/docs/reference/api/user/#home
【讨论】:
filter 参数有关的任何内容。这是错误的链接吗?
您现在可以使用Facebook Graph API(基本网址:https://graph.facebook.com)运行Facebook Query Language (FQL) 查询。
假设您的应用程序是 Twitter。 Twitter 的 Facebook 应用程序 ID 是 2231777543。
我在@danontheline's answer 的帮助下并仔细阅读了 Facebook 在FQL stream 和FQL stream_filter 上的文档,得出了下面的 FQL 查询。
以下摘录特别中肯:
如果您从
stream_filterFQL 表中指定filter_key或 多个用户,返回的结果将表现得像用户的主页 新闻提要。如果只指定一个用户作为 source_id,您将 接收用户或页面的个人资料视图。你可以过滤这些 通过指定filter_key'others' (仅返回 由指定用户以外的人发布的帖子)或“所有者” (仅返回指定用户发布的帖子)。个人资料视图, 与主页视图不同,它从我们的数据库返回旧数据。在 对于主页,个人资料视图还包括粉丝的帖子。
GET /fql?q=SELECT post_id, actor_id, message, app_id, attribution FROM stream WHERE filter_key = 'app_2231777543'
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、隐私等而有所不同)。您可以通过将流表的其他列添加到上述查询和/或简单地向 GET /{post_id} 为上述 FQL 流查询返回的每个 post_id 发出另一个 Graph API 请求来了解有关每个帖子的更多信息。
【讨论】:
Version 2.0 of the Facebook Platform API is the last version where FQL will be available. Versions after 2.0 will not support FQL.
Afaik 这是不可能的,just Graph API。但是您也可以只使用FQL 语句来检索墙/提要。使用这种技术,您可以将其限制为由一个 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 的键过滤该数组。
【讨论】: