InstagramScraper\Model\Media::fromApi PHP Method

fromApi() public static method

public static fromApi ( $mediaArray )
    public static function fromApi($mediaArray)
    {
        $instance = new self();
        $instance->id = $mediaArray['id'];
        $instance->type = $mediaArray['type'];
        $instance->createdTime = $mediaArray['created_time'];
        $instance->code = $mediaArray['code'];
        $instance->link = $mediaArray['link'];
        $instance->commentsCount = $mediaArray['comments']['count'];
        $instance->likesCount = $mediaArray['likes']['count'];
        $instance->imageLowResolutionUrl = self::getCleanImageUrl($mediaArray['images']['low_resolution']['url']);
        $instance->imageThumbnailUrl = self::getCleanImageUrl($mediaArray['images']['thumbnail']['url']);
        $instance->imageStandardResolutionUrl = self::getCleanImageUrl($mediaArray['images']['standard_resolution']['url']);
        $instance->imageHighResolutionUrl = str_replace('320x320', '1080x1080', $instance->imageLowResolutionUrl);
        if (isset($mediaArray['caption'])) {
            $instance->caption = $mediaArray['caption']['text'];
        }
        if ($instance->type === 'video') {
            if (isset($mediaArray['video_views'])) {
                $instance->videoViews = $mediaArray['video_views'];
            }
            $instance->videoLowResolutionUrl = $mediaArray['videos']['low_resolution']['url'];
            $instance->videoStandardResolutionUrl = $mediaArray['videos']['standard_resolution']['url'];
            $instance->videoLowBandwidthUrl = $mediaArray['videos']['low_bandwidth']['url'];
        }
        if (isset($mediaArray['location']['id'])) {
            $instance->locationId = $mediaArray['location']['id'];
        }
        if (isset($mediaArray['location']['name'])) {
            $instance->locationName = $mediaArray['location']['name'];
        }
        return $instance;
    }

Usage Example

Exemplo n.º 1
0
 public static function getPaginateMedias($username, $maxId = '')
 {
     $hasNextPage = true;
     $medias = [];
     $toReturn = ['medias' => $medias, 'maxId' => $maxId, 'hasNextPage' => $hasNextPage];
     $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 $toReturn;
     }
     foreach ($arr['items'] as $mediaArray) {
         $medias[] = Media::fromApi($mediaArray);
     }
     $maxId = $arr['items'][count($arr['items']) - 1]['id'];
     $hasNextPage = $arr['more_available'];
     $toReturn = ['medias' => $medias, 'maxId' => $maxId, 'hasNextPage' => $hasNextPage];
     return $toReturn;
 }