İçeriğe geç

Twitter API Kullanımı

Mikrolog sitesi olan Twitter’ı bir sosyal medya aracı olmaktan çıkarıp farklı alanlarda kullanabilirsiniz. Bu alanlardan en büyüğü ve en çok kullanılanı da Sentiment Analysis yani Duygu / Durum Analizi olsa gerek. Ülkemizde çok yaygın olmasa da Avrupa’da ve özellikle ABD’de de bu işe milyonlarca dolar harcayan şirketler var. Bunun dışında sadece kendi Tweet’lerinizi veya bir başkasına ait olan Tweet’leri çekmek ve herhangi bir sayfada göstermek isteye de bilirsiniz.

Twitter’ın geliştiricilere desteği, belirli kısıtlamalar olsa da yeterli bir seviyede. Twitter’da genele açık olan profillerin tüm verilerine ulaşabilirsiniz.

Öncelikli olarak size gerekecek ilk şey ise tabiki bir Twitter hesabına sahip olmanızdır. Bunun nedeni; Twitter’dan veri çekerken doğrulama istemesidir. Dolayısıyla bu doğrulama da tekil bir profil üzerinden olması gerekmektedir. Buradaki sayfadan Twitter Application Management sayfasına ulaşıp; bu hesap üzerinde geliştirme yapmak istediğinize onay vermelisiniz. Daha sonrasında ise; uygulamanıza bir isim vermeli ve Twitter’ın API kullanımı için 4 adet key’i üretmelisiniz.

Twitter üzerinde işlem yapmak için şu 4 key’e sahip olmalısınız:

  • Consumer Key
  • Consumer Secret
  • Access Token
  • Access Token Screen

Key’lere sahip olduktan sonra; Twitter üzerinde oldukça rahat işlemler gerçekleştirebilirsiniz.

Twitter ile çalışmalar yaparken bir library kullanmanız yerinde bir karar olacaktır. Buradaki sayfadan; çeşitli programlama dillerine ait olan libraries yani kütüphaneleri görebilirsiniz. Benim uzun zamandır kullandığım PHP için Twitter kütüphanesi ise TwitterOAuth kütüphanesidir. Bu kütüphane ile Twitter üzerinde bir çok işlemi gerçekleştirebilirsiniz.

TwitterOAuth kütüphanesini Composer ile indirebilirsiniz.

$ composer require abraham/twitteroauth

Veya buradaki Github hesabından da manuel olarak indirebilirsiniz. Size tavsiyem Composer’i kullanmanız. Depency Manager (Bağımlılık Yöneticisi) olarak Composer’i tercih etmeniz ileri ki aşamalarda, ekleme / silme / güncelleme gibi işlemlerde oldukça kolaylık sağlayacaktır.

Composer ile TwitterOAuth kütüphanesini indirdikten sonra vendor/autoload.php dosyasının projemize ekleyebiliriz.

require './vendor/autoload.php';

Şayet doğrudan Github hesabından TwitterOAuth kütüphanesini indirmiş iseniz;

require('./twitteroauth/autoload.php');

şeklinde projenize dahil edebilirsiniz.

Bu aşamadan sonrası; TwitterOAuth kütüphanesini kullanmak. Bunun içinde bir nesne oluşturmalı ve bu nesne ile Twitter API Key’leri kullanarak, Twitter’a bağlanıp gerekli işlemleri gerçekleştirmeliyiz. Bunun için:

use Abraham\TwitterOAuth\TwitterOAuth;
$twitter = new TwitterOAuth(
    CONSUMER_KEY,
    CONSUMER_KEY, 
    ACCESS_TOKEN, 
    ACCESS_TOKEN_SECRET
);

veya

$twitter = new Abraham\TwitterOAuth\TwitterOAuth(
    CONSUMER_KEY, 
    CONSUMER_KEY, 
    ACCESS_TOKEN, 
    ACCESS_TOKEN_SECRET
);

Her iki şekilde de kullanabilirsiniz.

Twitter API Key’lerinizde bir sorun olmaması durumunda herhangi bir hata mesajı almayacaksınız. Oluşturduğumuz object (nesne) ile artık çok rahat bir şekilde işlemlerimizi gerçekleştirebiliriz.

Şimdi bir kaç Tweet çekelim.

$results = $twitter->get('statuses/user_timeline', array(
    'screen_name'       => TWITTER_ACCOUNT, 
    'count'             => 200
));

TWITTER_ACCOUNT (başında @ işareti olmamalı. Örneğin; elonmusk) alanına, yazdığımız herhangi bir Twitter hesabının Tweet’lerini çekebiliriz. Bu alana kendi Twitter hesabınızı yazarak, Tweet’lerinizi de çekebilirsiniz. Twitter, REST API kullanmaktadır. Dönen değer de JSON formatında olacaktır. Dolayısıyla Twitter’dan gelen değeri de JSON formatın da işlemek gerekmektedir. Buradaki sayfadan örnek bir sonucu görebilirsiniz.

Twitter tekil bir hesabın yalnızda en son atılan 200 Tweet’ini vermektedir. Eğer; herhangi bir limit belirlememiş iseniz varsayılan olarak; son 20 Tweet’i size verecektir.

Twitter üzerinde herhangi bir keyword (anahtar kelime) kullanarak veya herhangi bir Twitter hesabının da geçtiği Tweet’leri alabilirsiniz. Bu bir nevi arama işlemi yapmaktır. Bunun için de aşağıdaki kod satırları işimizi görecektir.

$results = $twitter->get('search/tweets', array(
    'q' => QUERY
));

Burada yine limit belirleyebilirsiniz. Buradaki üst limit ise; 100 ile sınırlıdır. QUERY (başında; @, # veya sadece text. Örneğin; @ankara) değişkeni; aramak istediğiniz keyword olmalıdır. Ayrıca Geocode belirterek; işaretlediğiniz longitude (boylam), latitude (enlem) ve radius (yarıçap) arasında kalan bölgede arama işlemini gerçekleştirebilirsiniz. Radius olarak belirttiğiniz değer; miles (1 mil = 1609 m) cinsinden olmalıdır.

Twitter API ile Twitter platformunda gerçekleştirdiğiniz bütün işlemleri gerçekleştirebilirsiniz. Hatta kendi uygulamanızı bile yapabilirsiniz.

Örneğin; Twitter API yardımıyla herhangi bir Tweet atabilirsiniz. Bunun için aşağıdaki satırları yazmanız yeterli.

$results = $twitter->post('statuses/update', array(
    'status' => 'My first tweet!'
));

Ya da daha önce atmış olduğunuz herhangi bir Tweet’i silebilirsiniz. Bunun için de aşağıdaki kod satırlarını kullanmanız yeterli.

$results = $twitter->post("statuses/destroy/$tweetID");

Her Tweet’in bir ID değeri bulunmaktadır. $tweetID değişkeni silinecek olan bu Tweet’in ID değeridir. Peki bu değeri nasıl bulabilirsiniz? Bu ID değerlerini, kendi Tweet’lerinizi çektiğizde size gösterilir. Daha önce belirttiğimiz gibi; Twitter’dan dönen JSON formatındaki yapıda bu Tweet ID değeri de yeralmaktadır. Bu ID değerini alıp, yukarıdaki satırda belirtmeniz durumunda ilgili Tweet silinir.

Daha önce de belirttiğimiz gibi; Twitter API yardımıyla, Twitter platformunda gerçekleştirdiğiniz bütün işlemleri gerçekleştirebilirsiniz. Twitter, bilimsel araştırmalar yapmak için gerçek bir saha. Bu sahada elde edeceğiniz veriler ile herhangi bir konuda çıkarım elde edebilirsiniz. Örneğin; Almanya’da, 2009 seçimlerini kimin kazanacağı %4 yanılma oranıyla daha önceden tahmin edilmiştir. Bu ve buna benzer bir çok örnek mevcut. Google – Scholar üzerinde yapacağınız bir kaç araştırma ile daha fazla örnek ve sonuca ulaşabilirsiniz. Ülkemiz bu konuda oldukça bakir. Amerika’da bu alanlarda araştırmalar yapan ve şirketlere danışmanlık hizmeti veren bir çok kuruluş mevcut.

Saygı ve muhabbetle!..

Bu içeriği paylaşmak ister misiniz?

3 Yorum

  1. Merhaba , hocam elinize sağlık size bir sorum olacaktı. WordPress sitemde kullandığım otomatik paylaşım eklentisini için Twvitter apisine ihtiyacım var. İngilizcem yok ve Twvitter ingilizce olduğu için bir şeyler yazıp gönderdim. İki gün sonra e-postama gelen bu yazı geldi.
    (Thanks for applying for access!

    In order to complete our review of your application, we need additional information about your use case. The most common types of information that can help expedite our review include:

    The core use case, intent, or business purpose for your use of the Twitter APIs

    If you intend to analyze Tweets, Twitter users, or their content, share details about the analyses you plan to conduct and the methods or techniques

    If your use involves Tweeting, Retweeting, or liking content, share how you will interact with Twitter users or their content

    If you’ll display Twitter content off of Twitter, explain how and where Tweets and Twitter content will be displayed to users of your product or service, including whether Tweets and Twitter content will be displayed at row level or aggregated

    To provide this information to Twitter, reply to this email.

    Thank you for your interest in building on Twitter.)

    Bu e-postayı yanıtlamak için ne yapmalıyım yada bu mesajı yanıtlamak için bana ingilizce bir yazı yazabilir misiniz şimdiden teşekkür ederim.

    • Merhaba,

      Daha önceleri; Twitter, genel olarak herkesle API Key paylaşımını yapmaktaydı. Fakat daha sonraları API kullanıcıları bu işin suyunu çıkarttıkları (Twitter Bot ile dakikalık uygunsuz Tweet’ler atılması, alakasız kişileri etiketleme, reklam vs. gibi durumlar oluştu) için Twitter artık; API’yi hangi amaçla kullanmak istediğinizi bilmek istiyor. Twitter API’yi hangi amaçla kullanmak istediğinizi detaylı olarak; Twitter’a yazmanız durumunda herhangi bir zorluk çıkarmayacaklar ve API Key’lerinizi vereceklerdir. Bu gelen mesajda da Twitter, API’yi hangi amaçla kullanmak istediğinizi bilmek istediklerini belirtmişler.

  2. Bu arakadaş gibi ben de sitemden yazdığım yazıları otomatik yayınlaması için api alacaktım fakat şöyle bir yazı geldi

    Your developer account application was not approved. You may continue to manage existing apps, however, further action may be taken if they violate Twitter policies.

Bir cevap yazın

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

Buradaki içeriklerin tümü kamu malıdır. Kullanılması ve paylaşılması özgürdür.