İki adımda takipçi haritanızı oluşturun

1 - Takipçilerin bilgilerini csv formatında kaydedin.

Öncelikle gerekli datayı twitter api'sinden almamız gerekiyor. Bunun için aşağıdaki kodları kullanacağız:

from urllib import urlencode
from os import makedirs
from os.path import dirname
import json
from datetime import datetime

def lookup(screenname=False, user_id=False):
    if screenname is False and user_id is False:
        raise ValueError("Suppy either screenname or user_id")

    params = {}

    if screenname:
        params["screen_name"] = screenname
    else:
        params["user_id"] = user_id

    return call_twitter_api("users/lookup.json",params)

def call_twitter_api(endpoint, params):
    """
    Calls twitter api, and parses returned json, than returns.

    string, {"string": ?} -> ?
    """

    query = "%s?%s" % (endpoint, urlencode(params,doseq=1))
    print query
    try:
        makedirs(dirname(query))
    except OSError:
        pass

    try:
        with open(query,"r") as dosya:
            raw_json = dosya.read()
            return json.loads(raw_json)
    except IOError:        
        url = "https://api.twitter.com/1/%s" % (query)
        conn = urlopen(url)
        raw_json = conn.read()

        conn.close()
        parsed  = json.loads(raw_json)
        if "error" not in parsed:  
            with open(query,"w") as dosya:
                dosya.write(raw_json)
        else:
            raise TwitterError(parsed["error"])

        return parsed


def get_follower_ids(screenname=False, user_id=False):

    if screenname is False and user_id is False:
        raise ValueError("Suppy either screenname or user_id")

    params = {}

    if screenname:
        params["screen_name"] = screenname
    else:
        params["user_id"] = user_id

    return call_twitter_api("followers/ids.json",params)["ids"]

def export_users(filename, user_ids):
    columnheaders = [
        "userid",
        "screenname",
        "fullname",
        "statusses",
        "friends",
        "followers",
        "favourites",
        "url",
        "lang",
        "location",
        "created",
        "timezone",
        ]

    headerline = ",".join("\"%s\"" % i for i in columnheaders) + "\n"
    lineformat = ",".join(["\"%s\""] * len(columnheaders)) + "\n"

    print lineformat

    with open(filename, "w") as dosya:
        dosya.write(headerline)
        now = datetime.now()
        for id in user_ids:
            try:
                user = lookup(user_id=id)[0]
            except IOError:
                continue
            except KeyError:
                continue

            dosya.write( (lineformat % (
                    user["id_str"],
                    user["screen_name"],
                    user["name"],
                    user["statuses_count"],
                    user["friends_count"],
                    user["followers_count"],
                    user["favourites_count"],
                    user["url"],
                    user["lang"],
                    user["location"],
                    user["created_at"],
                    user["time_zone"],
                    )).encode("utf-8"))

Önce Twitter follower bilgilerini kaydeden kodları kaydedin, daha sonra export_users("myfollowers.csv",get_follower_ids("y_arabaci")) şeklinde bir fonksiyon çağrısı yapın (y_arabaci yerine kendi kullanıcı adınızı yazmayı unutmayın). Bu takipçileriniz hakkındaki bilgileri myfollowers.csv ismindeki dosyaya kaydedecek. Twitter api saatte 150'den fazla fonksiyon çağrısı kabul etmiyor. O yüzden bir kısmını indirdikten sonra biraz beklemeniz gerekebilir. Program indirdiği verileri keşliyor. O yüzden bir dahaki sefere sadece yeni kullanıcı bilgilerini indirecek.

2 - Oluşturduğunuz tabloyu google fusion tables'a yükleyin.

Google Fusion Tables import sayfası tıklayın ve oluşturduğunuz csv dosyasını yükleyin. Ayraç (seperator) olarak virgül (comma), kodlama olarak utf-8 kullanın. location sütununun bir yer ifade ettiği otomatik olarak algılayan google, sizin için bu yerlerin haritada nereye düştüğünü bulup sizin için işaretleyecek. "Map of location" isimli tabda haritanızı görebilirsiniz. Bunun oluşması biraz süre alabilir. O aşağıdaki kırmızı noktalara tıklayabiliyorsunuz.

Opsiyonel - Grafik falan da çizebilirsiniz.

Özetle

Google fusion tables olayının ilk fanboylarından oldum galiba.