参考以下文章:
我正在使用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
链接。
任何帮助都将不胜感激。
答案 0 :(得分:1)
结果显示链接:
[next] => https://graph.facebook.com/133750480034063/photos?
fields=name,source,images&offset=0&limit=25&after=MzI0ODMwNTYwOTI2MDUz
这意味着分页数组仅返回下一个而不是之前的链接。
偏移为0 ,显然没有以前要检索的数据集。
Facebook在去年年底改变了,并表示如果实际 要获取更多数据,他们现在只返回上一个/下一个URL。 (不适用于所有连接,但有些连接。)这是一件好事,因为它可以节省开发人员制作另一个耗时的HTTP请求,只是为了找出没有更多的数据。
因此,如果它们存在并且您需要更多数据,请使用它们 - 如果它们不存在,则不执行任何操作。