JSON ile Twitter’dan Son Tweetleri Çekmek | Rest API 1.1

Merhaba arkadaşlar, bu dersimizde sizlere Twitter’ın güncellenen servisi Rest API sistemini anlatacağım. Bu sistem sayesinden twitter’dan son tweetlerimizi çekebileceğiz. Hatta takipçi sayınız, takip ettiğiniz kişilerin sayılarını bile çekebiliriz. Herşey sizin hayal gücünüze kalmış. Eskiden Twitter API Kullanmadan sadece json adresi ile tweetleri kolayca çekebiliyorduk. Twitter kendi API uygulamasını çıkardıktan sonra böyle birşey söz konusu değil.

İlk önce Twitter’da uygulamamız yoksa ise uygulama oluşturmamız gerek. Nasıl uygulama oluşturulacağını bilmiyorsanız aşağıdaki verdiğim adrese bakabilirsiniz ;
http://www.atknuludag.com/ders/1088-twitterda-uygulama-olusturmak.html

Twitteroauth sınıfını indirebileceğiniz github adresi;
https://github.com/abraham/twitteroauth

Twitter API döküman sayfası;
https://dev.twitter.com/docs/api/1.1

Gerekli bilgileri ve adresleri verdikten sonra kodlarımızı yazmaya başlayalım. Twitteroauth sınıfını isterseniz yukarıda verdiğim linkten isterseniz de makalenin sonunda vereceğim indirme sayfasından indirebilirsiniz.

Birkaç önemli bilgiyi sizlere aktarmak istiyorum. Birkaç sitede gördüğüm kadarı ile yine JSON ile tweetleri çekerken uygulamalarının key numaralarını javascript kod bloğu arasında yazdıklarını fark ettim. İyi bir kullanıcı o sitenin kaynak kodlarına girip kolayca o sitenin uygulamasının keylerini çekebilir. Bu yüzden ben keyleri farklı bir yol ile eklemeyi seçtim. Bu şekilde harici kişiler uygulamamızın kaynak kodlarına erişemiyor ve bu yol tabi ki daha güvenli.

twitter.php dosyamız ;

<?php
	header('Content-type: application/json; charset=utf8');
	header("access-control-allow-origin: *");
	
	require 'twitteroauth/twitteroauth.php';

	// consumer ve access
	$consumer_key = '#####';
	$consumer_secret = '##########';
	$access_token = '###############';
	$access_token_secret = '####################';

	// sıfını başlatalım
	$twitter = new TwitterOAuth($consumer_key, $consumer_secret, $access_token, $access_token_secret);
	
	// tw - kullanıcı adı
	$username = isset($_GET['username']) ? htmlspecialchars($_GET['username']) : NULL;
	
	// tw sayısı
	$count = isset($_GET['count']) ? (int) $_GET['count'] : 5;
	
	$tweets = $twitter->get('https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name='.$username.'&count='.$count);

	print json_encode($tweets);
	
?>

twitter-json.js dosyamız ;

$(document).ready(function(){
		
		
		// Twitter Kaç Dakika Önce Yazıldı
		function parseTwitterDate(tdate) {
        var system_date = new Date(Date.parse(tdate));
        var user_date = new Date();
        var diff = Math.floor((user_date - system_date) / 1000);
        if (diff <= 1) {return "şuan";}
        if (diff < 20) {return diff + " saniye önce";}
        if (diff <= 3540) {return Math.round(diff / 60) + " dakika önce";}
        if (diff <= 5400) {return "1 saat önce";}
        if (diff <= 86400) {return Math.round(diff / 3600) + " saat önce";}
        if (diff <= 129600) {return "1 gün önce";}
        if (diff < 604800) {return Math.round(diff / 86400) + " gün önce";}
        if (diff <= 777600) {return "1 hafta önce";}
        return "on " + system_date;
        }
		// End Twitter Kaç Dakika Önce Yazıldı

       // Twitter Username
       String.prototype.parseUsername = function() {
        return this.replace(/[@]+[A-Za-z0-9-_şçöüğı]+/gi, function(u) {
            var username = u.replace("@","")
            return u.link("http://twitter.com/"+username);
         });
       };
	   // End Twitter Username

      // Twitter hashtag
      String.prototype.parseHashtag = function() {
        return this.replace(/[#]+[A-Za-z0-9-_şçöüğı]+/gi, function(t) {
            var tag = t.replace("#","%23")
            return t.link("http://twitter.com/search?q="+tag);
        });
      };
	 // End Twitter hashtag
		
 

  
    //Tweetleri Cek
	var $twitter = $('#twitter');
    //twitter.php dosyanızın tam yolunu alt kısma doğru şekilde yazmanız gerek. twitter.php yazan 
    //kısımdan sonrasına dokunmayın.
   //username= kısmından sonraki yeri kendi twitter kullanıcı adınızla değiştirin.
	$.getJSON('twitter.php?username=AtknUludag&count=5',function(data){
	var takipcisayisi = data.followers_count;
    $twitter.html('');
    for ( var i = 0; i < data.length; i++){
        var date = data[i].created_at;
        var tweet = data[i].text;
        $twitter.append('<div>' + tweet.parseUsername().parseHashtag() + ' <span>(' + parseTwitterDate(date) + ')</span></div>');
        }
	$twitter.find('div').filter(':not(:first)').hide();
    var e = 0;
    setInterval(function(){
        if ( e < data.length - 1 ) e++;
        else e = 0;
        $twitter.find('div').hide()
        $twitter.find('div:eq('+e+')').fadeIn(900);
    }, 4000);
  })
  //End Tweetleri Cek

		 });
Örnek Uygulamalar
JSON ile Twitter'dan Son Tweetleri Çekmek
İndirilme : 412 | Dosya Tipi : rar

5 yorum

  1. tugce Yanıtla

    ben kelimeye göre arama yapıp son atılan tweetleri çekiyorum ve tek seferde malesef 100 tweet çekebiliyorum . bu sorunu nasıl çözebilirim

  2. Polat Dugan Yanıtla

    Merhaba, Twitter üzerinden veri çekemiyorum malesef başarısız oluyorum. ve hiç bir veri gelmiyor. acaba kodlarda problem mi var?

    • Atakan Yasin Uludağ YazarYanıtla

      Kodlarda sorun yok. Uygulamayı yanlış oluşturmuş olabilirsiniz veya

      $.getJSON('twitter.php?username=AtknUludag&count=5',function(data){
      

      bu kısımda ki twitter.php yoluna erişemiyor olabilirsiniz. Bu alana twitter.php’nin tam yolunu yazmayı deneyin. Şöyle ki ;

      $.getJSON('http://www.atknuludag.com/twitter/twitter.php?username=AtknUludag&count=5',function(data){
      
  3. Yasin Yanıtla

    Süper eklenti teşekkürler. Web sitemde twitter’da yazdığım son tweetleri bu eklenti ile gösterebiliyorum. Herkese tavsiye ederim. Ayrıca içindeki metotlar ile otomatik takipçi sayısını bile çektim 🙂

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.