19 Aralık 2013 Perşembe

Python ile Twitter Apisi Kullanımı

Python ile twitter apisi kullanarak örnek uygulamalar oluşturmayı göreceğiz. Bunun için ilk önce twitterda uygulama oluşturmamız gerekiyor. https://dev.twitter.com/apps/new adresinden uygulama oluşturabilirsiniz. Uygulama oluşturduktan sonra karşınıza şu şekilde bir pencere gelecek.
Buradaki Consumer key,Consumer secret,Access token,Access token secret değerleri bize lazım olacak. Eğer sizde değerleri yoksa Your access token başlığı altındaki Create my access token butonuna tıklayarak oluşturunuz. Twitter apisini kullanabilmek için Twython modülünü kullanacağız. Eğer Twython bilgisayarınıza kurulu değilse terminalde şu komutları yazarak kurabilirsiniz.
pip install twython

easy_install twython
Twitter apisini kullanabilmek için ilk şu tanımlamaları yapmamız gerekiyor.
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from twython import Twython
CONSUMER_KEY = '***'
CONSUMER_SEcRET = '***'
ACCESS_TOKEN = "***"
ACCESS_TOKEN_SECRET = "***"



twitter = Twython(CONSUMER_KEY, CONSUMER_SECRET,
                  ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
twython modülü sayesinde Twitter'a bağlanmış olduk. Burdaki *** değerleri kendi değerleriniz olmalıdır. Şimdi isterseniz ilk önce
update_status()
fonksiyonunu kullanarak tweet atalım. Yukarıdaki kodlara şu satırı ekliyoruz.
twitter.update_status(status='#Python ile tweet atma..')
Tweet atmış olduk.
NOT: Eğer twitterda oluşturduğunuz uygulamanın yazma izni yoksa hata ile karşılaşırsınız. İlk uygulama oluşturulduğunda varsayılan olarak sadece okuma izni vardır.
Bir kullanıcının takipçi sayısı,takip ettiği kişi sayısı, attığı tweet sayısı gibi değerlere ulaşabiliriz.
##Takip ettiği kişi sayısı
user = twitter.get_user_timeline()
print user[0]['user']['friends_count']
138
##Takipçi sayısı
user = twitter.get_user_timeline()
print user[0]['user']['followers_count']
82
##Attığı tweet sayısı
user = twitter.get_user_timeline()
print user[0]['user']['statuses_count']
969
##Kullanıcı adı
user = twitter.get_user_timeline()
print user[0]['user']['screen_name']
_true_false
Bu işlemleri kullanıcı adını kendimiz vererek başka kullanıcı içinde yapabiliriz.
user = twitter.get_user_timeline(screen_name='uygarkoroglu')
print user[0]['user']['followers_count']
206
Şimdi istediğimiz bir kullanıcının son tweetlerini çekerek yeni bir .html sayfasına aktaracağımız basit bir uygulama yapalım.
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from twython import Twython
APP_KEY = '***'
APP_SECRET = '***'
ACCESS_TOKEN = "***"
ACCESS_TOKEN_SECRET = "***"



twitter = Twython(APP_KEY, APP_SECRET,
                  ACCESS_TOKEN, ACCESS_TOKEN_SECRET)

user_tweets = twitter.get_user_timeline(screen_name='_true_false',include_rts=True)
tweets = ""
for tweet in user_tweets:
    tweet = Twython.html_for_tweet(tweet)
    tweets += '
  • '+tweet+'
  • ' html = """
      """+ tweets +"""
    """ create_html = open("tweets.html","w") create_html.write(html.encode('utf-8').strip()) create_html.close()
    Buradaki screen_name='_true_false' parametresi hangi kullanıcının tweetleri çekilecekse onun kullanıcını adını belirtir. Programı çalıştırdığınız da bulunduğunuz dizinde son tweetlerin bulunduğu tweets.html dosyası oluşacaktır.
    Daha fazla bilgiye https://twython.readthedocs.org/en/latest/ sayfasından ulaşabilirsiniz.
    Ekipten Mehmet İnce'nin benzer bir twitter modülünü kullanarak yazdığı tweet silme programına Buradan ulaşabilirsiniz.

    3 yorum :

    1. Tweepy kütüphanesini kullanarak python ile tweet atmak isterseniz : http://www.gokod.com/python-ile-tweet-gonderme/

      YanıtlaSil
    2. Bu yorum yazar tarafından silindi.

      YanıtlaSil
    3. son 5 yıldaki tweetleri konuma göre çekebilir miyiz twitterdan ? mesela son 5 yıldaki konumu Turkey olan tweetleri ?

      YanıtlaSil