我正在用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并调用next_url。然后它将从该URL检查JSON以获取下一个url并重复。然后,所有收集的JSON将合并到一个列表中,然后我可以迭代以回显每个人。 我的问题是,每次有分页时,我怎么能得到下一个网址,合并JSON并重复,直到没有更多的网页可以通过。
我可以继续制作$ third_page,$ 4th_page,但如果用户有超过四页的关注者,并且例如他们只有10个关注者,那就毫无意义。
我尝试使用if函数来检查是否存在分页和array_merge(),但无济于事。也许我做错了。 请有人指出我正确的方向。
谢谢,
-DH