2012-08-01 64 views
2

我在下面的代碼問題,任何人都可以解決它? 這裏是我的代碼說明:Facebook的JSON服務不是檢索超過1000個Facebook好友

$friends=get_data(https://graph.facebook.com/".$facbookid."/friends?access_token=".Useraccess_token); 

這裏是GET_DATA功能並返回相應的數據:

function get_data($url) { 
    $ch = curl_init(); 
    $timeout = 5; 
    curl_setopt($ch,CURLOPT_URL,$url); 
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); 
    $data = curl_exec($ch); 
    curl_close($ch); 
    return $data; 
} 

然後我用JSON服務:

$json = new Services_JSON(); 
$friends = $json->decode($friends); 
echo "print data".$friends->data; 
if (isset($friends->data)) 
    { 
     foreach($friends->data as $friend) 
     { 
      $i++; 
      $friendList[] = $friend->id; 
     } 
    } 

問題是,當我只有1000個朋友,它檢索數據。但當朋友超過1000時它不工作。

Infact,我用過$friends = $json->decode($friends,true);等 任何人都可以幫我嗎?

+0

你使用什麼PHP版本?自v5.2以來,通過'json_decode()'進行的本機JSON解碼已包含在php中。 http://us3.php.net/manual/en/function.json-decode.php – cpilko 2012-08-01 18:21:03

回答

1

Facebook的圖形API會限制結果的數量,以防止它(或您)遭受糟糕的性能或內存不足。您需要使用the paging features that the API provides,即limit,sinceuntil參數。

最好不要改變默認限制,除非你有充足的理由(不要打擾到頁面不是一個好的理由)。有用的是,所有結果還包含一個paging結構,告訴你下一頁(和上一頁)的URL。