Merhaba dostlar, bu yazımızda bir ekibin gayri resmi yollarla yaptığı instagram-user-feed adlı API kullanımını anlatacağım.
Sizce de çok heyecanlı değilm mi? Hadi API'yi nasıl kuracağımızı ve nasıl kullanacağımıza geçelim.
API'yi Composer ile kuracağız. Kullanmış olduğunuz Terminal programnızı açıp projeyi çalıştıracağınız kalsör konumuna erişiniz ve kurulumu yapınız.
composer require pgrimaud/instagram-user-feed
Şimdi gelelim API'yi nasıl kullanacağımıza.
require "vendor/autoload.php";
use Instagram\Api;
use Symfony\Component\Cache\Adapter\FilesystemAdapter;
$cachePool = new FilesystemAdapter('Instagram', 0, __DIR__ . '/../cache');
$api = new Api($cachePool);
$api->login('username', 'password'); // Aksiyonları gerçekleştirecek hesap bilgileri.
Yukarıda gördüğünüz gibi aksiyonları gerçekleştirebilmemiz için bir instagram hesabı tanımlamamız gerekiyor. Kütüphaneyi'de dahil ettiğimize göre aksiyon almaya başlayalım.
$profile = $api->getProfile('eycreative'); // Çekilecek profilin kullanıcı adı.
echo "<pre>";
// print_r($profile) // Dizi içinde neler olduğunu görebilmek için tümünü ekrana yazdıralım.
echo "</pre>";
echo $profile->getuserName();
echo $profile->getfullName();
echo $profile->getbiography();
echo $profile->getfollowers();
echo $profile->getfollowing();
echo $profile->getprofilePicture();
echo $profile->getexternalUrl();
echo $profile->getmediaCount();
print_r(); ile yazdırdığımız dizi içinde ki tüm profil detay bilgilerini
yazdırabilirsiniz.
$medias = $profile->getMedias(); // Medyaların bulunduğu diziyi döngüye sokabilmek için ekleyiniz.
foreach ($medias as $media) {
echo "<pre><hr>";
echo 'ID : ' . $media->getId() . "\n";
echo 'Caption : ' . $media->getCaption() . "\n";
echo 'Link : ' . $media->getLink() . "\n";
echo 'Likes : ' . $media->getLikes() . "\n";
echo 'Date : ' . $media->getDate()->format('Y-m-d h:i:s') . "\n\n";
echo "<pre>";
}
yukarıda ki döngü ile kullanıcının paylaşmış olduğu medyaların bir kısmını çekebiliyoruz çünkü API tüm paylaşımları bir anda çekmemize izin vermiyor, eğer sayfalandırma kullanmazsak sadece 12 adet veri geleceğini göreceğiz. Peki nasıl tüm verileri çekeceğiz?
do {
foreach ($medias as $media) {
echo "<pre><hr>";
echo 'ID : ' . $media->getId() . "\n";
echo 'Caption : ' . $media->getCaption() . "\n";
echo 'Link : ' . $media->getLink() . "\n";
echo 'Likes : ' . $media->getLikes() . "\n";
echo 'Date : ' . $media->getDate()->format('Y-m-d h:i:s') . "\n\n";
echo "<pre>";
}
sleep(1);
} while ($profile->hasMoreMedias());
Artık sayfamızda aşağı doğru indikçe tüm veriler gelmeye başlayacaktır.
En sevdiğim ve basit kullanıma sahip olan aksiyonumuzu alalım.
// Takip Etme Aksiyonu
try{
$userId = 3266224637; // Takip edilecek kullanıcının ID'si
$follow = $api->follow($userId);
echo $follow . PHP_EOL;
if($follow == TRUE){
echo "Request Sent";
}else{
echo "NO";
}
} catch (InstagramException $e){
print_r($e->getMessage());
}catch (CacheException $e){
print_r($e->getMessage());
}
// Takibi Bırakma Aksiyonu
try{
$userId = 3266224637; // Takipten çıkılacak kullanıcının ID'si
$unfollow = $api->unfollow($userId);
echo $unfollow . PHP_EOL;
if($unfollow == TRUE){
echo "Unfollow Okey";
}else{
echo "NO";
}
} catch (InstagramException $e){
print_r($e->getMessage());
}catch (CacheException $e){
print_r($e->getMessage());
}
Eğer sorgu yaparken bu hatayı alırsanız tanımladığınız instagram hesabınıza girip "Bu işlemi ben yaptım" seçeneğini işaretleyin, API'y, bir haftadır açmış olduğum sahte bir hesaptan deniyorum fakat henüz bir problem yaşamadım. Umarım sizlerde'de bir problem olmaz.
API'ile İlgili Daha Fazla Bilgi Alın
Makalemizin başında bahsettiğimiz gibi API'nin kullanım alanı çok geniş, bu yazımda basit
bir şekilde kurulum ve kullanımından birkaç örnek vererek bahsettim, daha fazla bilgiye
API'ni
GitHub Dokümantasyonun'dan göz atabilirsiniz.
Diğer tüm örneklere API'nin GitHub Dökümantasyon içinde bulunan Examples klasöründen ulaşabilirsiniz.
Sonuç
Kurulumunu ve kullanımı anlatmış olduğum API göderüğünüz üzere kullanışlı bir proje olmuş yalnız makalemizin başında bahsettiğim gibi, Bu API Instagram platformuna resmi olmayan yollarla erişim sağlamak için geliştirilmiş üçüncü taraf unofficial yani gayri resmi bir API'dir, demek istediğim şudur ki, API şuan sorunsuz ve stabil bir şekilde çalışmakta ama bu durum ileriki günlerde değişebilir, bu yüzden bu API'yi projelerinizde kullanırken, olmasını istemediğimiz durumlara hazırlıklı bir şekilde entegre ediniz.
Ayrıca Ücretsiz Whois API adlı makalemde projelerinizde işinize yarayabilir. Beni dinlediğinizi için teşekkür ederim, sormak istediğiniz konuları yorumlarda belirtebilirsiniz.