Twitter Api Kullanımı

Merhaba arkadaşlar :) Hürriyet Api ve League Of Legends Api sistemi ile api kullanımı konusunda fikir yapınızın oturduğunu düşünüyorum. Şimdi ise yavaştan sosyal medyalara giriş yapalım ve ilk olarak twitter ile başlayalım :) Twitter Api içerisinde istemeyeceğiniz kadar çok method bulunuyor resmen kendi twitterınızı yapabilirsiniz diyebilirim :) Method fazla diyede gözünüz korkmasın kullanım çok fazla kolay  çünkü aslında biz twitter api tamamıyla baştan yazmıycaz :) Şimdi dersimize yavaş yavaş detaylıca giderek başlayalım. Sırayla: Uygulama Oluşturma , Kütüphane Listesi ve Kullanacağımız Kütüphane , Döküman Sayfası , Hazırladığım Proje anlatımı ve Github & Demo ile makaleyi sonlandıracağım. Umarım yararlı olur :)

 

İlk olarak şunu belirteyim ki biz Twitter api sistemini kullanmak için sıfırdan bir proje hazırlamamıza gerek yok. Twitterın da önerdiği bazı hazırlanmış kütüphaneler bulunmaktadır ve bizim yapmamız gereken kütüphaneyi projemize dahil edip sınıflar ile çalışmak. OOP yapısına hakimseniz zaten sorun yok ama hakim değilseniz bu da gözünüzü korkutmasın çünkü düşündüğünüz kadar OOP ile bir işimiz olmayacak.

 

Uygulama Oluşturma

Şimdi Twitter App sayfasına girelim ve twitter hesabımız ile giriş yapalım. Daha sonra sağ üst kısımda yer alan Create New App tıklayalım. Açılan sayfada İsim (Name) , Açıklama (Description) ve Website  kısımlarını zorunlu şekilde doldurmamız gerekiyor. Bunların haricinde ise Callback yani giriş yapıldığında geri gideceği sayfayı da doldurabilirsiniz ama buna gerek yok çünkü bunu kodlarımızda zaten belirtiyoruz. Geliştirici Anlaşmasınıda (Developer Agreement) kabul ettikten sonra Create your Twitter application tıklayarak uygulamamızı oluşturalım. Artık uygulamamız hazır ve gerekli Keylere sahibiz. Twitter App sayfasında ugulamalarımız listeleniyor ve burdan oluşturduğumuz uygulamaya girelim.Öncelikle Settings kısmında istediğiniz zaman uygulamanızın adını açıklamasını değiştirebilir ve icon ekleme gibi işlemlerinizide yapabilirsiniz. Keys and Access Tokens sekmesinde ise uygulamamıza ait özel bilgileri görebilirsiniz. Burada bulunan Consumer Key (API Key) ve Consumer Secret (API Secret) uygulamamıza uzaktan erişim için gerekli kodlar ve bunlara ihtiyacımız olacak. Son olarak ise Permissions kısmı. Burada ise uygulamamızı kullanacak kullanıcıların hangi bilgilerine erişeceğimizi seçiyoruz.Read only (Sadece Oku) , Read and Write (Oku ve Yaz) , Read, Write and Access direct messages (Oku , Yaz ve Direkt Mesajlara Erişim) şeklinde 3 farklı erişim seçeneği bulunuyor. Ben hazırladığım projede örnek olması açısından Direkt mesajlara da erişimi açtım yani sizde projenin çalışması için Read, Write and Access direct messages seçmeniz gerekiyor. Seçtikten sonra artık App kısmı ile işimiz bitti. 

 

Kütüphane Listesi ve Kullanacağımız Kütüphane

Twitter bir çok farklı programlama için bir çok hazırlanmış kütüphane önermiş bizi şuan PHP ilgilendiriyor tabi ki. Libraries kısmını inceleyelim ve PHP başlığına gelelim. Gördüğünüz gibi seçeneğimiz bol :) ama biz bunlar arasında Abrahamın hazırlamış olduğu TwitterOAuth kullanacağız. Hazırlanmış kütüphaneyi indirmek için Github , Hazırlanmış kütüphane hakkında ki bilgileri ise TwitterOAuth Php Library adreslerinden bulabiliriz. Linkleri inceleyebilirsiniz fakat zaten proje anlatım kısmında bu konu ile ilgili anlatım olacaktır.

 

Döküman Sayfası

Konu başında da söylediğim gibi twitter bizlere fazlasıyla method sunuyor. Bunun için kullanacağımız 2 farklı method sayfası bulunmakta. İlk olarak Oauth yani giriş yapan kullanıcının token bilgilerine erişebilmemiz için hazırlanmış bir Döküman sayfası bulunmaktadır. Bu sayfa ile giriş yapan kullanıcının token bilgilerini çektikten sonra ise asıl methodlarımızın bulunduğu sayfayla devam edeceğiz.Methodlarımıza bir göz atalım. GET ve POST diye 2 farklı method çeşitimiz var. Döküman sayfasında sizin de gördüğünüz gibi Veri çekmek veya Veri Post etmek için işimize yarayacak herşey mevcut. Methodların bulunduğu sayfada ki herhangi bir methodun içeriğine göz atarsanız Açıklama , Parametreler ve Örnek Json çıktısını görebilirsiniz. Hazırladığım projede kullandığım methodlar ;

Oauth Methodları

oauth/request_token

oauth/authorize

oauth/access_token

Get Methodları

 

account/verify_credentials ( Temel Bilgileri Çekme )

statuses/home_timeline ( Ana Sayfada Bulunan Tweetleri Çekme )

statuses/user_timeline ( Kullanıcının Kendi Tweetlerini Çekme )

followers/list  (Takipçi Kullanıcıları Çekme)

friends/list ( Takip Edilen Kullanıcıları Çekme )

Post Methodları

statuses/update ( Tweet Gönderme )

direct_messages/new ( Mesaj Gönderme )

 

Diğer hazırladığım api projeleri gibi bunu da sadece temel yapıyı anlayabilmeniz için hazırladım. Zaten bu projeden temeli anladıktan sonra Twitter Beğeni Sistemi gibi birşey de rahatlıkla yapabilirsiniz.

 

Proje Anlatımı

Uygulamayı ilk oluşturduğumuzda Consumer Key (API Key) ve Consumer Secret (API Secret)  bilgilerinin lazım olacağını söylemiştim. Bu bilgiler ile config.php içerisinde ki gerekli yerleri dolduralım ve tabi $baseUrl kısmınıda gerektiği gibi  düzenlemeyi unutmayalım. Öncelikle kullanacağımız Abrahamın kütüphanesi olan TwitterOAuth inceleyelim.  Projede göreceğiniz gibi her sayfada basitçe bir Session kontrolü bulunmakta. Bu kontrol ile Session içerisinde access_token var mı yok mu bunu kontrol edeceğiz ki giriş yapılmış mı yapılmamış mı bunu görelim. İlk olarak kütüphanemizi sayfamıza dahil etmemiz gerekiyor. Bunun için sayfanın en başına

 

require "vendor/TwitterOAuth/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;

 

kodlarını ekliyoruz ve sayfamıza kütüphanemizi dahil ediyoruz. İlk olarak kullanıcı giriş yapmamış ise login.php include ile sayfamıda dahil ediyoruz. login.php birlikte inceleyelim.

 

require "vendor/TwitterOAuth/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;

$connection = new TwitterOAuth($consumerKey, $consumerSecret);
$requestToken = $connection->oauth('oauth/request_token', array('oauth_callback' => $oauthCallback));

$_SESSION['oauth_token'] = $requestToken['oauth_token'];
$_SESSION['oauth_token_secret'] = $requestToken['oauth_token_secret'];

$url = $connection->url('oauth/authorize', array('oauth_token' => $requestToken['oauth_token']));
echo "<a href = '$url'> <img src='images/signIn.png' style='width: 200px'> </a>";

 

require ve use ile kütüphaneyi dahil ettikten sonra new ile TwitterOAuth sınıfını oluşturuyoruz ve değişkenleri sınıfa gönderiyoruz. Bu değişkenler config.php içerisinde api keylerin bulunduğu değişkenler . Daha sonra $requestToken ile oauth methodlarının içerisinde bulunan oauth/request_token methoduna bağlanıyoruz ve bilgileri session içerisine aktarıyoruz. Twitter uygulamamıza bağlantı linkini oluşturmak için oauth/authorize methodunu kullanıyoruz ve bu linki a href ile kullanının tıklaması için sayfaya yazdırıyoruz. Bu kodlar proje içerisinde sabit olduğu için login.php içerisinden her sayfaya include ediyoruz. Yani bu kodlar içinde sadece tasarım olan sayfaya yazdırma kısmını değiştirmeniz yeterli olacaktır.

 

login.php içerisinde oluşturulan url ile twitter gidip uygulamaya izin verildiğinde callback.php sayfasına gitmemiz gerekiyor. Bunu zaten config.php içerisinde $oauthCallback belirtiyoruz. login.php gibi callback.php içerisinde de değiştireceğimiz birşey pek yok. Makale uzamasın diye kodları burada paylaşmıyorum. Burada da oauth metodlarına erişim sağlıyoruz ve giriş yapan kullanıcının token bilgilerini sessiona aktarıyoruz. 

 

Şimdi asıl projeyi kullanımına başlayalım çünkü dediğim gibi login.php ve callback.php içerisinde pek değişecek birşey yok. index.php gibi tüm sayfalarda if else kontrolü olduğunu kullanıcı giriş yapmamışsa login.php dahil ettiğimizi söyledim şimdi kullanıcı giriş yapmışsa yani else kısmını inceleyeceğiz. Asıl işimiz burada olacak. Projeden örnek göstermek yerine kullanımını göstereceğim ki böylece projeyide rahatlıkla anlayıp geliştirmeye açık olacaksınız. 

 

Else kısımna geçmeden önce basit bir özet geçmek istiyorum. Projemize kütüphaneyi dahil ettik , if else ile sessionu kontrol ederek giriş yapan kullanıcı var mı diye göz attık , kullanıcı giriş yapmamış ise if kısmında login.php include ile sayfamıza dahil ettik , kullanıcı giriş yapmış ise callback.php sayfasına yönlendirip gerekli tokenleri sessiona aktardık , Artık session dolu olduğu için kullanıcı giriş yapmış oldu ve else kısmı geçerli oldu. Şimdi son olarak else kısmını inceleyeceğiz.

 

$accessToken = $_SESSION['access_token'];
$connectionOauth = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken['oauth_token'], $accessToken['oauth_token_secret']);
$connectionOauth->setTimeouts(30, 30);
$accountCredentials = $connectionOauth->get("account/verify_credentials");

 

İşte bu kadar :) Else kısmına da yukarıda bulunan 4 satırlık kodu yazmamız bize kullanıcının temel bilgilerini (İsim , Resim , Tweet sayısı vs...) çekmemize yarayacak. Çok kolay değil mi :) Şimdi 4 satırı inceleyelim. 4 satırın ilk 3 satırı sabit kalacak birşey aslında Sessiondaki veriyi değişkene attık ve tekrar new ile TwitterOAuth sınıfını yaratıp Key , Secret , oauth_tokenoauth_token_secret bilgileri ile bağlantımızı sağladık. 3. satırımızda bulunan $setTimeouts ile bağlantı zamanını ayarladık. Dediğim gibi bunlar sabit kalacak birşey asıl işimize yarıycak kısım $accountCredentials değişkeni.

 

$accountCredentials = $connectionOauth->get("account/verify_credentials");

 

Şimdi burada Döküman sayfamıza ihtiyacımız olacak. Öncelikle kullanacağımız method get ise ->get post ise ->post kullanacağız. Parantez içerisinde ise döküman sayfasındaki yazımın aynısını yazıyoruz.Örneğin account/settings , account/verify_credentials vs. döküman içerisinde yazmın aynısı yani. şimdi

 

print_r($accountCredentials);

 

ile değişkenin çıktısını ekrana yazdıralım.  Kullanıcının temel bilgileri json çıktısı ile ekrana yazdırdık. Şimdi ise sadece kullanıcının adını ekrana yazdıralım.

 

echo $accountCredentials->name ;

 

İşte bu kadar :) Proje içerisinde gerektiği yerde foreach da kullandık. Detaylı bilgiyi proje içerisinde incelerseniz görürsünüz zaten. Buradaki Bilgiler projeyi anlamayı kolaylaştıracak , proje ise twitter api sistemini kullanmayı kolaylaştıracaktır. 

 

Herhangi bir sorunuz olursa bana ulaşabilirsiniz :) yararlı olması dileğiyle :)

 

Github & Demo

Proje İndirme & İnceleme : Github

Projenin Demosu : Twitter Api


Yorumlar

Avatar
Oğuzhan ÇAKAR  - 3 Yıl Önce
Merhabalar @Cenk Bey Bazı server ayarları yapılmadığından dolayı demo düzgün çalışmıyor pek ilgilenecek vaktim olmuyor ne yazıkki. Fakat projeyi İndirip Makalede yazılanları özellikle "Uygulama Oluşturma" kısmını yapıp "config.php" içerisinde gerekli ayarları yaparsanız projenin düzgün çalışması gerekiyor. Yazdığınız gibi menüler gelip o menüler içerisinde gerekli api bağlantıları ve apiden gelen veriler bulunacaktır.
Avatar
Cenk  - 3 Yıl Önce
Merhaba, Denediğimde uygulama çalışır çalışmaz aşağıdaki menü başlıklarını listeliyor. Websitenizdeki örneği denediğimdeyse çıkışta sorun yaşanıyor. Kontrol eder misiniz? - Twitter Api Ana Sayfa Profilim Takip Edilen Takipçiler Çıkış

Düşünceni Bizimle Paylaş