Я хочу получить все медиафайлы, которые понравились пользователю, с помощью API Instagram. Instagram в настоящее время возвращает около 300 любимых медиа со следующей конечной точкой:
GET /users/self/media/liked
Каждый вызов возвращает около 30 результатов, поэтому у меня есть около 10 страниц для сканирования с помощью функции скручивания, которая занимает около 10 секунд.
Есть ли более быстрый способ сделать это? Я знаю, что curl_multi позволяет вам стрелять мю
public function fetchLikes()
{
$url = 'https://api.instagram.com/v1/users/self/media/liked?count=100&access_token=' . $access_token;
while (isset($url) && $url != '') {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$jsonData = curl_exec($ch);
curl_close($ch);
$response = json_decode($jsonData);
foreach ($response->data as $post) {
echo $post->user->username . "<br>";
}
$url = $response->pagination->next_url;
}
}
Переместить ваш curl_init () функционировать перед циклом while и двигаться curl_close () через некоторое время, даже если это не обязательство.
Других решений пока нет …