PHP Instagram API分页

时间:2015-10-12 11:26:42

标签: php json api pagination instagram-api

我正在用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

1 个答案:

答案 0 :(得分:1)

你可以采用现成的代码,有一个分页点 - https://github.com/cosenary/Instagram-PHP-API