2

我在以下代码上遇到问题,有人可以解决吗?这是我的代码描述:

$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);等。有人可以帮助我吗?

4

1 回答 1

1

Facebook 的图形 API 限制了结果的数量,以防止它(或您)遭受性能不佳或内存不足的困扰。您需要使用API 提供的分页功能limit,即sinceuntil参数。

除非您有充分的理由,否则最好不要更改默认限制(不打扰页面不是一个好理由)。有用的是,所有结果还包含一个paging结构,告诉您下一页(和上一页)的 URL。

于 2012-08-01T18:32:59.367 回答