【问题标题】:Are data acquired from Facebook GRAPH API real-time?从 Facebook GRAPH API 获取的数据是实时的吗?
【发布时间】:2010-08-10 16:07:02
【问题描述】:

我正在创建一个 Facebook 应用程序,它将下载相册中的所有照片。该应用程序是为我个人使用而创建的,同时学习 Facebook API 和 JSON。

我已经可以通过调用这个 url 来检索相册中照片的 URL:

http://graph.facebook.com/[albumid]/photos?fields=source

我尝试下载的相册包含 5400 多张照片,因此我尝试通过添加 limit 参数来增加限制:

http://graph.facebook.com/[albumid]/photos?fields=source&limit=1000

问题来了:

返回的结果只到 2010-07-30T11:20:11+0000。当我尝试使用until 参数修改查询时,如下所示:

http://graph.facebook.com/[albumid]/photos?fields=source,link&limit=1000&until=2010-06-01

数据正确响应。但是,如果我将日期更改为 2010-08-05 之类的日期,则返回的最新照片的 created_date 将为 2010-07-30T11:20:11+0000。

返回的最后一张照片是 5695 张中的第 5000 张照片。

这是我的问题:

从 Facebook GRAPH Api 获取的数据是实时的(或每月更新,2010-07-30)吗?还是对相册中返回的照片数量有限制(例如 5000 张)?

谢谢!

编辑

Facebook 中有 5000 个对象的限制。如果您知道如何突破限制,请访问: Breaking the 5000 object limit in Facebook API

谢谢!

【问题讨论】:

标签: facebook


【解决方案1】:

返回的对象确实有 5000 个限制。 您需要对photo 表排序运行多个 FQL 查询并限制结果 ((不起作用)

【讨论】:

  • 仅使用 Graph 就没有办法做到这一点吗?
  • @Ian - 图表的响应是否包含任何类型的分页或光标信息?
  • @Ian 我刚刚检查了 FQL 有同样的问题 - 无论如何都没有返回超过 5000 限制的数据,抱歉。也许其他人可以提供帮助。
  • @Peter:有。但是有 5000 个限制。
  • @serg:是的,我尝试从辅助工具中查询 pid。最上面的结果是第 5000 张图片。
【解决方案2】:

当我查看您链接的图表查询中的照片时

https://graph.facebook.com/119403264763178/photos

我在底部看到分页信息。所以,拼凑一个快速测试

$request  = 'http://graph.facebook.com/119403264763178/photos?fields=source&limit=1000';
$response = json_decode( file_get_contents( $request ), true );

$totalCount = 0;

while ( count( $response['data'] ) )
{
  echo 'Fetching ' . urldecode( $response['paging']['next'] ) . '<br>';
  $totalCount += count( $response['data'] );
  $response = json_decode( file_get_contents( $response['paging']['next'] ), true );
}

echo $totalCount;

似乎即使按照分页数据,您仍然只能检索 5000 条记录。

我建议访问 FB 论坛或打开 bug 票。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多