Facebook Graph API在2011年之前没有提供任何数据?

Enr*_*tyo 4 facebook facebook-graph-api facebook-ios-sdk

我是iPhone上的Fazzle应用程序的作者.我的应用程序所做的基本上是下载用户状态更新并按各种顺序对它们进行排序(例如,最喜欢,最多评论).

我一直想知道Facebook是否允许开发人员从他们加入Facebook的那天起就获得用户的状态更新,因为当我启动应用程序时,我只能从2009年获得用户状态.今天我发现Facebook限制了图形API调用,直到2011年以来.

我试着查看文档,在这里询问,并通过他们的论坛联系Facebook.但到目前为止,Graph API中没有关于此限制的说法.我错过了什么?我还有其他方法可以在2011年之前获取状态更新数据吗?

你可以在这里自己测试一下.使用此GET请求:

https://graph.facebook.com/(your_user_id)/statuses?limit=99999
Run Code Online (Sandbox Code Playgroud)

向下滚动,您会发现并非所有内容都已下载.

这是因为与Facebook时间线的利益冲突吗?如果是这样,那很糟糕.

在此处记录为错误.仍然希望有人可以指出我的错误,如果有的话.

jch*_*hes 10

绝对可以从Graph API中获取较旧的帖子; 没有限制(至少不是我所知道的).使用sinceuntil参数返回结果,而不是offset:

https://graph.facebook.com/me/feed?access_token=[token]&until=1165474447
Run Code Online (Sandbox Code Playgroud)

文档分页不走很深入的sinceuntil:

查询连接时,有几个有用的参数可用于筛​​选和翻页连接数据:

但基本上,until就像是说"给我帖子直到这个日期",并且因为类似,"给我这个日期后的帖子".所以你可以使用这样的循环在用户的feed中一直滚动回来:

// pseudocode
timestamp = now
do {
  posts = graph.get(/me/feed?until=timestamp)
  if posts.length == 0: break;
  // process posts
  timestamp = posts[0].created_time // first should be the oldest, in theory
} while (1)
Run Code Online (Sandbox Code Playgroud)

更换untilsince最古老的created_time与最新的向前走的时候,比如抢任何新的职位自从上一次用户运行的应用程序.