public static function getMedias($username, $count = 20, $maxId = '')
{
$index = 0;
$medias = [];
$isMoreAvailable = true;
while ($index < $count && $isMoreAvailable) {
$response = Request::get(Endpoints::getAccountMediasJsonLink($username, $maxId));
if ($response->code !== 200) {
throw new InstagramException('Response code is ' . $response->code . '. Body: ' . $response->body . ' Something went wrong. Please report issue.');
}
$arr = json_decode($response->raw_body, true);
if (!is_array($arr)) {
throw new InstagramException('Response code is ' . $response->code . '. Body: ' . $response->body . ' Something went wrong. Please report issue.');
}
if (count($arr['items']) === 0) {
return [];
}
foreach ($arr['items'] as $mediaArray) {
if ($index === $count) {
return $medias;
}
$medias[] = Media::fromApi($mediaArray);
$index++;
}
if (count($arr['items']) == 0) {
return $medias;
}
$maxId = $arr['items'][count($arr['items']) - 1]['id'];
$isMoreAvailable = $arr['more_available'];
}
return $medias;
}