2013-01-04 83 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

相關問題