facebook API照片分页不返回“上一个”链接

时间:2013-01-04 06:05:45

标签: php facebook-graph-api pagination

参考以下文章:

http://www.masteringapi.com/tutorials/how-to-create-a-user-photo-albums-browser-using-facebook-graph-api/77/

我正在使用Facebook Graph API创建用户相册浏览器。除了Pagination之外,一切正常。问题是$facebook->api没有返回“之前的”分页链接。

以下是我的代码:

$params = array();
    $params['offset'] = 0;
    if (isset($_GET['offset']))
        $params['offset'] = $_GET['offset']+25;
    if (isset($_GET['limit']))
        $params['limit'] = $_GET['limit'];
    $params['fields'] = 'name,source,images';
    $params = http_build_query($params, null, '&');        
    $album_photos = $facebook->api("/{$_GET['id']}/photos?$params");

    if (isset($album_photos['paging'])) {
        if (isset($album_photos['paging']['next'])) {
            $next_url = parse_url($album_photos['paging']['next'], PHP_URL_QUERY) . "&id=" . $_GET['id'];
        }
        if (isset($album_photos['paging']['previous'])) {
            $pre_url = parse_url($album_photos['paging']['previous'], PHP_URL_QUERY) . "&id=" . $_GET['id'];
        }
    }

如果我正在打印:

        echo '<pre>';
        print_r($$album_photos['paging']);
        exit;

结果显示链接:

[paging] => Array
        (
            [next] => https://graph.facebook.com/133750480034063/photos?fields=name,source,images&offset=0&limit=25&after=MzI0ODMwNTYwOTI2MDUz
        )

这意味着paging数组只返回next而不是previous的链接。

如何获取previous链接。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

  

结果显示链接:

[next] => https://graph.facebook.com/133750480034063/photos?
          fields=name,source,images&offset=0&limit=25&after=MzI0ODMwNTYwOTI2MDUz
  

这意味着分页数组仅返回下一个而不是之前的链接。

偏移为0 ,显然没有以前要检索的数据集。

Facebook在去年年底改变了,并表示如果实际 要获取更多数据,他们现在只返回上一个/下一个URL。 (不适用于所有连接,但有些连接。)

这是一件好事,因为它可以节省开发人员制作另一个耗时的HTTP请求,只是为了找出没有更多的数据。

因此,如果它们存在并且您需要更多数据,请使用它们 - 如果它们不存在,则不执行任何操作。