İnstagram son post verisi cekim

Merhabalar

şöyle bir kod ile instagramdan son veri kontrolu  yaptırılıyormuş  elimdeki panel yarım bırakılmış bir panel oldugu için bu kodun düzenlenmesi yapılabilirmi ? 

<?php

class AutoServiceModel
{

    /* INSTAGRAM: Return the latest post CODE, DATETIME
     * This will be used for setting the latest media for the system to know from where to start
     */
    public static function getIGLatestMedia($username) {
        $instaResult = file_get_contents('https://www.instagram.com/'.$username.'/?__a=1');
        $insta = json_decode($instaResult);
        foreach ($insta->user->media->nodes as $row) {
            if ($row === reset($insta->user->media->nodes)) {
                return [
                    'code' => $row->code,
                    'timestamp' => $row->date,
                    'datetime' => date('Y-m-d H:i:s',$row->date),
                    'is_video' => $row->is_video
                ];
            }
        }
        return false;
    }

    // Checks if IG username exists or not.
    public static function checkIGUsername(string $username) {
        $instaResult = file_get_contents('https://www.instagram.com/'.$username.'/?__a=1');
        if($instaResult === false) return false;
        return true;
    }

    public static function getIGAllMedia($username, $datetime) {
        $instaResult = file_get_contents('https://www.instagram.com/'.$username.'/?__a=1');
        $insta = json_decode($instaResult);
        $array = [];
        foreach ($insta->user->media->nodes as $row) {
            $array[] = [
                'code' => $row->code,
                'timestamp' => $row->date,
                'datetime' => date('Y-m-d H:i:s',$row->date),
                'is_video' => $row->is_video
            ];
        }
        // Add posts greater than current datetime
        $newArray = [];
        foreach ($array as $key => $val) {
            // Get posts greater than current datetime
            if($val['datetime'] > $datetime) {
                $newArray[] = [
                    'code' => $val['code'],
                    'timestamp' => $val['timestamp'],
                    'datetime' => $val['datetime'],
                    'is_video' => $val['is_video']
                ];
            }
        }

        return $newArray;
    }

    public static function randomBetweenTwo(int $min, int $max) {
        return rand($min, $max);
    }

    public static function autoServiceFilter(int $delay_minutes, string $profile, int $min, int $max, int $service_id, int $posts, $apiKey = null, $userId = null) {
        $delay = [0,2,3,4,5,10,15,30,60];
        $serviceDetails = ServiceModel::getServiceDetails($service_id);
        $database = DatabaseFactory::getFactory()->getConnection();

        if (isset($apiKey)) {
            $get = $database->prepare('SELECT balance FROM users WHERE user_api = :api');
            $get->execute([':api' => $apiKey]);
            $balance = $get->fetchObject()->balance;
            if ($get->rowCount() == 0) {
                return ['status' => false, 'message' => Text::get('WrongAPIKey')];
            }
        } else {
            $get = $database->prepare('SELECT balance FROM users WHERE user_id = :id');
            $get->execute([':id' => $userId]);
            $balance = $get->fetchObject()->balance;
        }

        $checkProfile = AutoServiceModel::checkIGUsername($profile);
        if($checkProfile === false) {
            return ['status' => false, 'message' => Text::get('InstagramUsernamedoesnotexist')];
        }

        // Check that service is auto service
        $checkService = $database->prepare('SELECT autoservice FROM services WHERE id = :id');
        $checkService->execute([':id' => $service_id]);
        $checkResult = $checkService->fetchObject();
        if ($checkResult->autoservice == 0) {
            return ['status' => false, 'message' => Text::get('Chosenserviceisnotautoservice')];
        }

        // Balance check, we'll calculate max charge, max charge should be available in user balance.
        $maxAmount = $max * $posts;
        $maxCharge = OrderModel::calculateCharge(ServiceModel::getServiceprice($service_id), $serviceDetails, $userId, $maxAmount);
        if ($balance == 0 || $maxCharge > $balance) {
            return ['status' => false, 'message' => Text::get('Notenoughbalance').".".Text::get('Atleast')."$".$maxCharge.' '.Text::get('isrequiredinbalance').'.'];
        }

        if (!is_int($delay_minutes) || !is_int($min) || !is_int($max) || !is_int($service_id) || !is_int($posts)) {
            return ['status' => false, 'message' => Text::get('Afieldisnotinteger')];
        } elseif (!in_array($delay_minutes, $delay)) {
            return ['status' => false, 'message' => Text::get('Invaliddelayinminutes')];
        } elseif(filter_var($profile, FILTER_VALIDATE_URL)) {
            return ['status' => false, 'message' => Text::get('PleaseprovideInstagramUsername')];
        } elseif($min < $serviceDetails->minOrder) {
            return ['status' => false, 'message' => Text::get('Minimumamountshouldbeequalormorethan')." ".$serviceDetails->minOrder];
        } elseif ($max > $serviceDetails->maxOrder) {
            return ['status' => false, 'message' => Text::get('Maximumamountshouldbeequalorlessthan')." ".$serviceDetails->maxOrder];
        } elseif ($max < $min) {
            return ['status' => false, 'message' => Text::get('Maximumcannotbelessthanminimum')];
        } elseif ($posts < 1) {
            return ['status' => false, 'message' => Text::get('Postsshouldbeequalorgreaterthan1')];
        } elseif ($posts > 90) {
            return ['status' => false, 'message' => Text::get('Postsshouldbeequalorlessthan90')];
        } elseif (empty($service_id) || empty($profile) || empty($min) || empty($max) || empty($posts)) {
            return ['status' => false, 'message' => Text::get('Afieldisempty')];
        } else {
            return ['status' => true, 'message' => Text::get('Filterpassed')];
        }
    }

    // Auto service is only for IG
    public static function addAutoService(int $service_id, string $profile, int $min, int $max, int $posts, int $delay_minutes, int $user_id, bool $api = false) {
        $database = DatabaseFactory::getFactory()->getConnection();

        // Get latest post code for IG
        $post_datetime = !empty(self::getIGLatestMedia($profile)) ? self::getIGLatestMedia($profile)['datetime'] : date('Y-m-d H:i:s');

        $add = $database->prepare('INSERT INTO autoservice (user_id, service_id, profile, min, max, posts, delay_minutes, latest_post_datetime, created)
                                            VALUES (:user_id, :service_id, :profile, :min, :max, :posts, :delay_minutes, :latest_post_datetime, :created)');
        $execute = $add->execute([
            ':user_id' => $user_id,
            ':service_id' => $service_id,
            ':profile' => $profile,
            ':min' => $min,
            ':max' => $max,
            ':posts' => $posts,
            ':delay_minutes' => $delay_minutes,
            ':latest_post_datetime' => $post_datetime,
            ':created' => date('Y-m-d H:i:s')
        ]);
        $id = $database->lastInsertId();
        if ($execute) {
            if ($api === true) return ['autoservice_id' => $id, 'status' => self::getAutoServiceById($id, $user_id)->status];
            Session::add('feedback_positive', Text::get('Autoserviceordersuccessfullycreated'));
        } else {
            if ($api === true) return ['error' => Text::get('Couldnotinsertautoserviceorder')];
            Session::add('feedback_negative', Text::get('Couldnotcreateautoserviceorder'));
        }
    }

    public static function getAutoServices() {
        $database = DatabaseFactory::getFactory()->getConnection();
        $get = $database->prepare('
        SELECT services.*, our_price FROM services, (SELECT service_id, our_price, date_activated FROM servicePrice
        ORDER BY date_activated DESC, service_id ASC) AS inner_table,
        (SELECT id, name, status FROM categories) AS categories_table
        WHERE inner_table.service_id = services.id AND categories_table.id = services.category_id AND categories_table.status = 1 AND services.status = 1 AND autoservice = 1 GROUP BY inner_table.service_id ORDER BY our_price ASC');
        $get->execute();
        return $get->fetchAll();
    }

    public static function getAutoServiceOrders($user_id) {
        $database = DatabaseFactory::getFactory()->getConnection();
        $get = $database->prepare('SELECT * FROM autoservice WHERE user_id = :user_id ORDER BY id DESC');
        $get->execute([':user_id' => $user_id]);
        return $get->fetchAll();
    }

    public static function countAutoServiceOrders($autoservice_id) {
        $database = DatabaseFactory::getFactory()->getConnection();
        $count = $database->prepare('SELECT * FROM orders WHERE autoservice_id = :id');
        $count->execute([':id' => $autoservice_id]);
        return $count->rowCount();
    }

    public static function cancelAutoService($autoservice_id, $user_id) {
        $database = DatabaseFactory::getFactory()->getConnection();
        $update = $database->prepare('UPDATE autoservice SET status = 2 WHERE id = :id AND user_id = :user_id');
        if($update->execute([':id' => $autoservice_id, ':user_id' => $user_id])) return true;
        return false;
    }

    public static function getAutoOrders($autoid, $user_id) {
        $database = DatabaseFactory::getFactory()->getConnection();
        $get = $database->prepare('SELECT * FROM orders WHERE user_id = :user_id AND autoservice_id = :autoid ORDER BY id DESC');
        $get->execute([':user_id' => $user_id, ':autoid' => $autoid]);
        return $get->fetchAll();
    }

    public static function getAutoServiceById($id, $user_id) {
        $database = DatabaseFactory::getFactory()->getConnection();
        $get = $database->prepare('SELECT * FROM autoservice WHERE id = :id AND user_id = :user_id');
        $get->execute([':id' => $id, ':user_id' => $user_id]);
        return $get->fetchObject();
    }
}


aydın aydın Yeni Üye Tarih: 26.08.2018 Kategori: SQL

Merhabalar
gösterdiğiniz dosya üzerinden kodun devamını yapmak imkansız gibi bir şey. Çünkü öncelik olarak kodun çalışma mantıgını kavrayıp duruma göre devam etmek gerekir. 
Ek olarak burası soru sorma platformu kodun düzenlemesii sırasında oluşan hataları buraya yazmanız gerekiyor. Bunu yapabilecek tecrübede değilseniz ilgili kişilere ek ücret karşılığı isteyebilirsiniz.


Ahmet Ahmet Yeni Üye Tarih: 29.08.2018

  $instaResult = file_get_contents('https://www.instagram.com/'.$username.'/?__a=1');
        $insta = json_decode($instaResult);

Bu kod kısmının tamamen değişmesi gerekli, çünkü artık instagram

https://www.instagram.com/'.$username.'/?__a=1

bu link ile kullanıcının bilgilerini vermiyor. bu link kapandı.  Çoğu fonksiyonda da zaten bu kısım kullanılmış. O yüzden baştan yazılması daha uygun olarak gözüküyor.

Kullanıcının verilerini çekmek istiyorsan sitede bu konuyla ilgili bir soru zaten mevcut. Linki aşağıya bırakıyorum.

http://phpturkiye.com/question/sitemde-instagramda-son-paylastigim-resimleri-cekmek-icin-yardim-lazim-a1-calismiyor-15


Mehmet AYHAN Mehmet AYHAN Yeni Üye Tarih: 29.08.2018

mehmet  bey değişim için onarım için ucret alabilirmiyim


aydın aydın Yeni Üye Tarih: 31.08.2018

Profilinizdeki mail adresinize bir mail gönderdim. Ücret konusunu mail ile konuşursak daha doğru olacağını düşünüyorum.


Mehmet AYHAN Mehmet AYHAN Yeni Üye Tarih: 31.08.2018