<?php 
 
date_default_timezone_set('Africa/Lagos'); 
 
require_once __DIR__  . '/./vendor/autoload.php'; 
 
use Instagram\Storage\CacheManager; 
use Instagram\Api; 
use Dotenv\Dotenv; 
use IgFeedNotification\CheckPost; 
use IgFeedNotification\SendMail; 
 
@mkdir('./ig_cache'); 
 
$cache = new CacheManager('./ig_cache'); 
 
$userNamesInstruction = [ 
    'user_name1' => 'Give him 10k Likes', 
    'user_name2' => 'Give 10 comments', 
]; 
 
foreach ($userNamesInstruction as $userName => $instruction) { 
    $api   = new Api($cache); 
 
    $api->setUserName($userName); 
 
    $dotenv = new Dotenv(__DIR__); 
    $dotenv->load(); 
 
    $checkPost = new CheckPost(); 
 
    try { 
        // First page 
 
        /** @var \Instagram\Hydrator\Component\Feed $feed */ 
        $feed = $api->getFeed(); 
 
        echo '============================' . "<br/>"; 
 
        echo 'User Informations : ' . "<br/>"; 
        echo '============================' . "<br/><br/>"; 
 
        echo 'ID        : ' . $feed->getId() . "<br/>"; 
        echo 'Full Name : ' . $feed->getFullName() . "<br/>"; 
        echo 'UserName  : ' . $feed->getUserName() . "<br/>"; 
        echo 'Following : ' . $feed->getFollowing() . "<br/>"; 
        echo 'Followers : ' . $feed->getFollowers() . "<br/><br/>"; 
 
        echo '============================' . "<br/>"; 
        echo 'Medias first page : ' . "<br/>"; 
        echo '============================' . "<br/><br/>"; 
 
        $msg = ''; 
 
        /** @var \Instagram\Hydrator\Component\Media $media */ 
        foreach ($feed->getMedias() as $media) { 
            $msg .= 'User Name : ' . $feed->getUserName() . "<br/>"; 
            $msg .= 'Caption   : ' . $media->getCaption() . "<br/>"; 
            $msg .= 'Link      : ' . $media->getLink() . "<br/>"; 
            $msg .= 'Instructions: ' . $instruction . "<br/>"; 
            $msg .= '============================' . "<br/>"; 
            echo $msg; 
 
            $postId = explode('/', $media->getLink()); 
 
            if (!$checkPost->postIsExisted($postId[4])) { 
                SendMail::sendMail($msg, $media, $feed->getUserName()); 
                $checkPost->insertPostId($postId[4]); 
            } 
 
            break; 
        } 
 
        $msg = wordwrap($msg, 70); 
 
        // Second Page 
 
        $api->setEndCursor($feed->getEndCursor()); 
 
        sleep(1); // avoir 429 Rate limit from Instagram 
 
        $feed = $api->getFeed(); 
 
        echo "<br/><br/>"; 
        echo '============================' . "<br/>"; 
        echo 'Medias second page : ' . "<br/>"; 
        echo '============================' . "<br/><br/>"; 
 
        /** @var \Instagram\Hydrator\Component\Media $media */ 
        foreach ($feed->getMedias() as $media) { 
            echo 'ID        : ' . $media->getId() . "<br/>"; 
            echo 'Caption   : ' . $media->getCaption() . "<br/>"; 
            echo 'Link      : ' . $media->getLink() . "<br/>"; 
            echo 'Instructions: ' . $instruction . "<br/>"; 
            echo '============================' . "<br/>"; 
        } 
 
        // And etc... 
 
    } catch (\Instagram\Exception\InstagramException $exception) { 
        var_dump($exception->getMessage()); 
    } 
} 
 
 |