Twitter Api Kullanımı

Başlıktada belirttiğim gibi Twitter apisini kullanarak belli başlı birkaç işlem yapacağız .Uzun zamandır ne yapsam diye düşünürken aklıma birden twitter apisini kurcalamak geldi.

Neler Göreceğiz ?

  1. Dökümanları indireceğiz
  2. Twitterın uygulama geliştirici sayfasından aldığınız Keyleri kullanarak belli başlı birkaç işlem yapacağız

Dokümanlar

İlk olarak Twitterın uygulama geliştirici hesabınıza gidip bir app oluşturup ilgili keyleri almanız gerekmektedir

Bir geliştirici hesabınız yoksa Buraya tıklayarak bir gelirştirici hesap başvurusu yapabilirsiniz.

Abraham abimizin bize sunmuş olduğu dökümanlardan işimize yarayanları kendi github sayfama yükledim . buraya tıklayarak github sayfamdan dökümanları indiriniz

Ayrıca Abramah abimizin paylaştığı dökümanları görmek içi de buraya tıklayınız

Kodlama Kısmı

İlk olarak indirmiş olduğumuz dökümanları projemize dahil edelim.

include "include/twitteroauth.php";

Ardında twitter geliştirici sayfasından almış olduğunuz keyleri uygun alanlara ekleyiniz

$access = "SENİN_ACCESS_TOKENİNİN";
$access_secret= "SENİN_ACCESS_TOKEN_SECRETİN";
$consumer = "SENİN_COMSUMER_KEYİN";
$consumer_secret ="SENİN_COMSUMER_SECRETİN";

Sonrasında twitter’a kendimizi tanıtıyoruz.

$twitter = new TwitterOAuth($consumer,$consumer_secret,$access,$access_secret); // burayı ellemeyiniz

Kendimizi Twittera tanıttığımıza göre uygulama yazmaya başlayabiliriz.Twitterın bize sunmuş olduğu get ve post metodlarıyla uygulamamızı geliştirelim.

Get methodu ile işimize yarayacak olan verileri alıyoruz , Post methoduyla da aldığımız veriyi işliyoruz.

ilk olarak bizi takip etmeyenlere unfollow attıralım.

Unfollow Attırmak

Unfollow attırmak için birtane veri tabanına ihtiyacınız var çünkü sayfayı her yenilediğinizde kaldığınız yerden devam etmesi gerekiyor. devam etmezse aynı kişileri analiz etmiş olursunuz .

Twitter bize cursor ( [next_cursor_str]) yani kaldığınız yerden devam etmemize yarayan bir anahtar kodu üretiyor.

Siz bu anahtar kodunu her işlemin sonunda veritabanında güncellemeniz ve işlem başlangıcında veritabanından anahtar kodunu çekip ilgili yerlere eklemeniz gerekiyor.

Ben veri tabanı ile uğraşmayacağım sadece mantığını kavrayın yeter.

İlk olarak takip ettiğim kişileri analiz edeceğim

$kac = 15; // tek seferde analiz edilecek kullanıcı sayısı
$tweets = $twitter->get('https://api.twitter.com/1.1/friends/list.json?count='.$kac.'');

Ardından Aldığımız kullanıcıların beni takip edip etmediklerine bakacağız.

for ($i=0; $i < $kac; $i++) {
 
$kadi = $al["users"][$i]["screen_name"]; // kullanıcı adlarını aldık
$sorgu = $twitter->get('https://api.twitter.com/1.1/friendships/show.json?source_screen_name='.$kadi.'&target_screen_name=AkuthotaRahul'); // analiz ettik
$sorgu_ = json_decode(json_encode($sorgu), True); // arraya dönüştürdük

Karşı kullanıcı adını, for döngüsüne sokarak birden fazla hesabı analiz edeceğiz

for ($i=0; $i < $kac; $i++) {
 
$kadi = $al["users"][$i]["screen_name"]; // kullanıcı adlarını aldık
$sorgu = $twitter->get('https://api.twitter.com/1.1/friendships/show.json?source_screen_name='.$kadi.'&target_screen_name=AkuthotaRahul'); // kullanıcıları analiz ettik
$sorgu_ = json_decode(json_encode($sorgu), True); // arraya dönüştürdük
}

Analiz ettiğimiz kullanıcıların bizi takip edip etmediğine bakacağı

$takip_sorgu = $sorgu_["relationship"]["target"]["followed_by"]; // bizi takip ediyorsa 1 etmiyorsa boş dönecektir 

İf döngüsüyle bizi takip etmeyenlere unfollow attırıyoruz

if ($takip_sorgu != 1) {
 
$unf_at = $twitter->post('https://api.twitter.com/1.1/friendships/destroy.json?screen_name='.$kadi.'');
if ($unf_at) {
echo "Unfollow atıldı -> $kadi
";
}else{
echo "Hata
";
}
}else{
echo "Sizi Takip Ediyor -> $kadi
";
}

Twitter Unfollow Çıktısı

Kodun tamamını allta paylaştım.

$twitter = new TwitterOAuth($consumer,$consumer_secret,$access,$access_secret);
$kac = 15;
$tweets = $twitter->get('https://api.twitter.com/1.1/friends/list.json?count='.$kac.'');
$al = json_decode(json_encode($tweets), True); 

    for ($i=0; $i < $kac; $i++) { 
        # code...
    $kadi = $al&#91;"users"&#93;&#91;$i&#93;&#91;"screen_name"&#93;;
    $sorgu = $twitter->gt;get('https://api.twitter.com/1.1/friendships/show.json?source_screen_name='.$kadi.'&target_screen_name=AkuthotaRahul');
    $sorgu_ = json_decode(json_encode($sorgu), True); 

    $takip_sorgu = $sorgu_["relationship"]["target"]["followed_by"];
        if ($takip_sorgu != 1) {

                $unf_at = $twitter->post('https://api.twitter.com/1.1/friendships/destroy.json?screen_name='.$kadi.'');
                if ($unf_at) {
                    echo "Unfollow atıldı -> $kadi <br>";
                }else{
                    echo "Hataaaa";
                }
        }else{
            echo "Sizi Takip Ediyor -> $kadi <br>";
        }


    }

Unfollow attırmak bukadardı .

Takip Ettirmek

Unfollow gibi burada da cursor anahtar koduna ihtiyacınız var . İşlem bittikten sonra cursor anahtan kodu alıp veri tabanındaki anahtar kodunuyla güncelleyin . işlem başlatırken veri tabanındaki cursor anahtar kodunu alıp kaldığınız yerden işlem başlatın.( cursor ilk başlangıç değeri -1 dir )

Takip ettirmek unfollowa göre daha zordur ama biz önümüze geleni takip edeceğimiz için çokta zor olmayacak.

İsteyenler filtreli takip ettirebilir.Örnek vermek gerekirse,Sizi takip eden birisini takip etmeyebilirsiniz yada profil resmi yoksa takip etmeyebilirsiniz Yada yabancı hesapsa takip etmeyebilirsiniz.

Biz bunlara hiç bulaşmadan önümüze geleni takip edeceğiz.Yukarıda belirttiğim kendimizi twittera tanıtma olaylarını aynen burada da yapıyoruz.Ben tekrardan yazmayacağım.

İlk olarak kimin Takipçilerini takip edeceğimizi yazıyoruz

$takip_edilecek = ''; // Takip edilecek kullanıcıadı

Ardından tek seferde yapılacak işlem sayısını belirtiyoruz

$kac = 15;

Sonrasında karşı kullanıcının takipçi listesini çekerek kimi takip edeceğimizin bilgilerini alıyoruz.

$kullanici_cek = $twitter->get('https://api.twitter.com/1.1/followers/list.json?screen_name='.$takip_edilecek.'');
$al = json_decode(json_encode($kullanici_cek), True);
$kadi = $al["users"][$i]["screen_name"]; // takip edeceğimiz kişiler

For döngüsüne sokarak belirttiğimiz kişi kadar takip işlemi yaptırıyoruz.

for ($i=0; $i < $kac; $i++) { 
    $kadi = $al&#91;"users"&#93;&#91;$i&#93;&#91;"screen_name"&#93;;
    $takipet = $twitter->post('https://api.twitter.com/1.1/friendships/create.json?screen_name='.$kadi.'$follow=true');
if ($takipet) {
echo "Takip Edildi -> $kadi
";
}else{
echo "Takip Edilemedii -> $kadi Önceden Takip Ediyor olabilirsin";
}
}
Twitter Takip Çıktısı

Takip Etme işlemide bukadardı.

Tweet Atmak&Silmek

İçlerinde en kolay olanıda bu oyüzden sona bıraktım.Cursor olayı bunda yok o yüzden veri tabanı ile uğraşmıyoruz.

Tweet Atmak

$text = 'Mesahaba! Biz kodd.xyz Sitesinden geliyoruz'; // atmak istediğiniz tweet

$tweet_at = $twitter->post('https://api.twitter.com/1.1/statuses/update.json?status='.$text.'');
if ($tweet_at) {
    echo "Tweet Atıldı";
}else{
    echo "Tweet Atılamadı";
}

Tweet atmak bukadar kolay 🙂

Tweet Silmek

Tweet silmek için silmek istediğiniz tweetini İdsi gerekiyor.

Örnek vermek gerekirse : https://twitter.com/AkuthotaRahul/status/1066843703979970560 bir tweet linkiniz var ise rakam kısmı o tweetin İdsi oluyor.

$id = '1066843703979970560'; // Silmek istediğiniz tweet idsi

$tweet_at = $twitter->post('https://api.twitter.com/1.1/statuses/destroy/'.$id.'.json');
   if ($tweet_at) {
    echo "Tweet Silindi";
}else{
    echo "Tweet Silinemedi";
}

Tek tek böyle uğraşacağıma gider twitterdan silerim demeyin . Çoklu tweet silme işleminide yapabilirsiniz. ben sadece size mantığını gösterdim.

Son

Tüm bunları anlamamış olabilirsiniz , lütfen yorum yaparak takıldığınız yerleri bana bildiriniz. seve seve yardımcı olacağımdan hiç şüpheniz olmasın.

Kendinize iyi bakın arkadaşlar.

Bir cevap yazın

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