2013-01-04 84 views
2

引用下面的文章:Facebook的API的照片分页不返回“上一页”链接

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

我创建一个用户相册浏览器使用Facebook图形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

所得是显示链接这样的:

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

这意味着寻呼阵列只对下一个不是先前的返回链路。

随着的0偏移,有明显没有以前的数据集来检索。

Facebook在去年年底改变了这种说法,称如果实际上更多要提取的数据,他们现在只返回前一个/下一个网址。 (并非针对所有连接,而是一些。)

这是一件好事,因为它可以节省开发人员进行另一个费时的HTTP请求,以便找出没有更多数据。

因此,如果它们存在并且需要更多数据,那么就使用它们 - 如果它们不在那里,则什么也不做。

+0

嗯..所以这是问题。好的..谢谢你的回答。 – Sky

相关问题