我正在用PHP编写一个程序,用于检索用户在Instagram上关注的列表。我遇到的问题是,他们的API每次调用只返回50个结果,其余的都是分页的。我知道有一个"下一页"作为返回的JSON有分页->next_url。目前,我拥有的代码获取JSON并对其进行解码。紧接着,使用第一个API调用中的URL进行调用以获取下一个页面。看一下:
function getFollows($url){
$client_id = "my client id";
//echo "A url: ".$url."</br>";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$result = curl_exec($ch);
curl_close($ch);
return json_decode($result);
}
$url = 'https://api.instagram.com/v1/users/'.$user_id.'/follows/?client_id='.$client_id.'&access_token='.$token;
$first_page = getFollows($url);
$second_page = getFollows($first_page->pagination->next_url);
我想做的是检查JSON中的下一个url,并调用next_url。然后,它将检查来自该url的JSON以查找下一个url并重复。然后,所有收集到的JSON将合并到一个列表中,然后我可以遍历该列表以回显每个人。我的问题是我怎么能每次都有分页,得到下一个url,合并JSON并重复,直到没有更多的页面要通过。
我可以继续设置$third_page, $fourth_page,但是如果用户有超过4个页面的关注者,如果他们只有10个关注者,那么这是毫无意义的。
我已经尝试使用if函数来检查是否有分页和array_merge(),但无济于事。也许我做错了。谁能给我指个正确的方向?
谢谢,
dh
你可以拿一个现成的代码,有一个点与分页- https://github.com/cosenary/Instagram-PHP-API