PHP Instagram API ile Story İşlemleri

· PHP ·

Instagram

Bir arkadaşımın isteği üzerine Instagram API aracılığı ile story yani hikayeler üzerinde birkaç işlem yapmam gerekti. Bu sebepten ötürü PHP ile Instagram API işlemlerini öğrenmeye karar verdim.

Yapmak istediği şey storylerini gören insanların listesini bir veritabanına kaydetmekti. Tam olarak işlemleri bitirmemiş olsam da API'ın kullanımını temel olarak anlatıp basit işlemleri nasıl yapacağımızı anlatacağım.

Öncelikle Instagram API'ı kurmamız gerekmekte. İhtiyacınız olan şey sisteminize PHP 7.3.9 ve Composer kurulumlarını gerçekleştirmek. Bu işlemleri yaptıktan sonra yeni projemizi oluşturmaya başlayabiliriz.

Projemizin içinde bulunacağı klasörü oluşturun (Linux için mkdir <projeAdı> komutunu kullanabiliriz). Ardından terminal, konsol veyahut ne kullanıyorsanız o uygulamayı açın ve proje dizinine girdikten sonra (cd <dizin>), composer require mgp25/instagram-php komutu ile Instagram API dosyalarını projemize dahil edelim.

Bu işlemleri tamamladıktan sonra artık kodlarımızı yazacağımız dosyamızı oluşturabiliriz. Kendinize bir php dosyası açın (ör: instagram-islemleri.php). Dosyayı oluşturduktan sonra php taglarını açın ve yapmamız gereken bir kaç rutin işlem mevcut.

Öncelikle hata kodlarını görmemiz gerekecek. Lokal sunucunun 500 hatası vermeden hataları göstermesi için:

error_reporting(E_ALL);
ini_set('display_errors', 'On');

komutlarını php taglarımız arasına ekliyoruz. Bu bütün hataları görmemizi ve düzenlememizi sağlayacak.

Composer aracılığı ile eklediğimiz kodların çalışması için ise require 'vendor/autoload.php'; komutunu girmemiz yeterli, bu satırı ekledikten sonra composer ile eklediğiniz tüm paketler sorunsuzca projenizde çalışmaya başlayacaktır.

Başlamak için gereken tüm işlemleri hallettiğimize göre işe koyulabiliriz. Öncelikle API unofficial yani gayriresmi olduğundan yazarı bizim riskleri kabul etmemizi istemiş. API classındaki kodların çalışabilmesi için \InstagramAPI\Instagram::$allowDangerousWebUsageAtMyOwnRisk = true; satırını kodumuza ekliyoruz. Artık API işlemlerini sorunsuzca gerçekleştirmeye başlayabiliriz.

Classımızdan yeni bir obje üretmek için $ig = new \InstagramAPI\Instagram(true, true); kodunu kullanıyoruz. Argümanların anlamlarını açıklamak gerekirse birinci argüman debug aktif ediyor ikinci argüman ise debugdaki gereksiz tüm kod parçacıklarını kısaltıyor (truncate). 

Bu işlemi de tamamladıktan sonra artık giriş yapmaya geçebiliriz ama yapmamız gereken bir şey var, development işlemlerini hangi hesabınız ile gerçekleştirecekseniz bu adresten Instagram Developer User ID'nizi öğrenmeniz gerekmektedir.

User ID'yi edindiğimize göre üç değişken oluşturalım bunlar $username, $password, $user_id değişkenleri olabilir. İsimleri Türkçe veya İngilizce olarak siz seçebilirsiniz ($kullanici_adi, $sifre, $kullanici_id). Bu değişkenlerin içeriğini stringler ile tanımlayarak yazmanız gerekmekte. (ör: $username = 'dogukan.jpg')

Giriş yapmak için bir try, catch bloğu tanımlayın. Catch bloğunun argümanı \Exception $e olursa kolayca hata yakalama işlemlerini gerçekleştirebiliriz. try bloğunun içerisine $ig->login($username, $password); komutunu yazdığınızda API'a login olacaksınız. 

Tüm işlemleri yaptığımıza göre sayfayı yenilediğinizde hata almıyorsanız story yani hikayeler ile oynamaya başlayabiliriz. Benim yapmak istediğim giriş yaptığım kullanıcının hikayelerini alıp o hikayeleri izleyen kişileri veritabanına kaydetmek olduğundan bunun için gereken temel komutlara bir göz atalım.

Instagram API Hikaye (Story) İşlemleri

  • Takip ettiğiniz kişilerin hikayelerini görmek için:
    $ig->story->getReelsTrayFeed();

  • Kullanıcının hikayelerini görmek için:
    $ig->story->getUserReelMediaFeed('user_id');
    * Yukarıda belirttiğim şekilde aldığımız user_id'den bahsediliyor.

  • Hikayenize bakan kişileri görmek için:
    $ig->story->getStoryItemViewers('story_id');
    * story_id parametresini getUserReelMediaFeed fonksiyonu ile alacağız. Makalenin devamında bahsedeceğim.

Örnek olarak giriş yapıp storyleri aldığım ve onlardan gelen kullanıcıları bastırdığım açıklamalı kodu inceleyebilirsiniz.

Sorularınız için yorum bölümüne başvurabilirsiniz. Instagram API hakkında yeni makaleler ekleyeceğim. Sıradaki planım mesaj işlemlerini detaylı olarak örnekli anlatmak. Okuduğunuz için teşekkür ederim.