2

参考以下文章:

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链接。

任何帮助,将不胜感激。

4

1 回答 1

1

结果显示链接:

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

这意味着分页数组只为下一个返回链接,而不是为上一个。

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

Facebook 去年年底改变了这一点,称他们现在只返回上一个/下一个 URL,如果实际上更多数据要获取。(不是所有的连接,而是一些。)

这是一件好事,因为它使开发人员不必为了发现没有更多数据而发出另一个耗时的 HTTP 请求。

因此,如果它们存在并且您需要更多数据,请使用它们——如果它们不存在,则什么也不做。

于 2013-01-04T08:49:09.430 回答