PHP Instagram API Пагинация

1

Я пишу программу на PHP, которая извлекает список пользователей, которые следуют на Instagram. Проблема у меня в том, что их API только возвращает 50 результатов за звонок, а остальные разбиты на страницы. Я знаю, что есть "следующая страница", поскольку возвращаемый JSON имеет pagination-> next_url. В настоящее время код, который у меня есть, получает JSON и декодирует его. Сразу же после этого выполняется вызов для получения следующей страницы с использованием URL-адреса из первого вызова API. Взгляни:

    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. Затем он проверит JSON с этим URL-адресом на следующий URL-адрес и повторит. Все собранные JSON затем будут объединены в один список, который затем я смогу повторить для повторения каждого отдельного человека. Мой вопрос в том, как я могу каждый раз, когда есть разбиение на страницы, получить следующий URL-адрес, объединить JSON и повторить, пока не будет больше страниц, чтобы пройти.

Я мог бы продолжать делать $ third_page, $ four_page, но тогда это бессмысленно, если у пользователя более четырех страниц последователей и, если у них есть только 10 последователей, например.

Я попытался использовать функцию if, чтобы проверить, есть ли разбиение на страницы и array_merge(), но безрезультатно. Возможно, я делал это неправильно. Пожалуйста, может кто-нибудь указать мне в правильном направлении.

Благодаря,

-DH

Теги:
pagination
instagram-api

1 ответ

1
Лучший ответ

вы можете взять готовый код, есть точка с pagination- https://github.com/cosenary/Instagram-PHP-API

  • 0
    Спасибо. Это будет хорошо работать и, кажется, легко интегрируется! В настоящее время я использую цикл while для итерации, я, вероятно, отредактирую его, чтобы использовать это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню