我在以下代码上遇到问题,有人可以解决吗? 这是我的代码说明:
$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 SERVICE:
$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时,它就无法运作。
事实上,我使用了$friends = $json->decode($friends,true);
等。
任何人都可以帮助我吗?
答案 0 :(得分:1)
Facebook的图形API限制了结果的数量,以防止它(或你)遭受性能不佳或内存不足的影响。您需要使用the paging features that the API provides,即limit
,since
和until
参数。
最好不要更改默认限制,除非你有充分的理由(不打扰页面不是一个好理由)。有用的是,所有结果还包含一个paging
结构,告诉您下一页(和上一页)的URL。