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; }