public static function fromTagPage($mediaArray)
{
$instance = new self();
$instance->code = $mediaArray['code'];
$instance->link = Endpoints::getMediaPageLink($instance->code);
$instance->commentsCount = $mediaArray['comments']['count'];
$instance->likesCount = $mediaArray['likes']['count'];
$instance->ownerId = $mediaArray['owner']['id'];
if (isset($mediaArray['caption'])) {
$instance->caption = $mediaArray['caption'];
}
$instance->createdTime = $mediaArray['date'];
$instance->imageThumbnailUrl = self::getCleanImageUrl($mediaArray['thumbnail_src']);
$instance->imageStandardResolutionUrl = self::getCleanImageUrl($mediaArray['display_src']);
$instance->type = 'image';
if ($mediaArray['is_video']) {
$instance->type = 'video';
$instance->videoViews = $mediaArray['video_views'];
}
$instance->id = $mediaArray['id'];
return $instance;
}
public static function getLocationMediasById($facebookLocationId, $quantity = 12, $offset = '') { $index = 0; $medias = []; $hasNext = true; while ($index < $quantity && $hasNext) { $response = Request::get(Endpoints::getMediasJsonByLocationIdLink($facebookLocationId, $offset)); 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); $nodes = $arr['location']['media']['nodes']; foreach ($nodes as $mediaArray) { if ($index === $quantity) { return $medias; } $medias[] = Media::fromTagPage($mediaArray); $index++; } if (count($nodes) == 0) { return $medias; } $hasNext = $arr['location']['media']['page_info']['has_next_page']; $offset = $arr['location']['media']['page_info']['end_cursor']; } return $medias; }