我在以下代码上遇到问题,有人能解决吗?这是我的代码描述:
$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岁时,它就不起作用了。
事实上,我使用了$friends = $json->decode($friends,true);
等。有人能帮我吗?
Facebook的图形API限制了结果的数量,以防止它(或您)性能不佳或内存不足。您需要使用API提供的分页功能,即limit
、since
和until
参数。
除非你有充分的理由,否则最好不要更改默认限制(不去翻页不是一个好的理由)。有用的是,所有结果还包含一个paging
结构,告诉您下一页(和上一页)的URL。