pythonでtwitterAPIを使用する
はてなの次は、twitterのネットワークデータを作ってやろうと企んでいます。そこで、twitterAPIについてメモしておきます。一応、twitterAPIに関する情報は
Developer — Twitter Developers
に書いてありますが、英語なんで知ったかもいいとこなんですが、そんなに大したこと書いてないように思いましたw
pythonやその他言語の開発者にとっては、それを手軽に実装するためのモジュール(ライブラリ)がほしいわけですけど、http://apiwiki.twitter.com/Libraries に書いてありました。今回はpythonのtwitterモジュールの利用しました。
twitter情報を取得する - twitterモジュール
Google Code Archive - Long-term storage for Google Code Project Hosting.
twitterモジュールはここからダウンロードできます。インストール方法も載っています(まぁいつも通りですが)。
とりあえず、インストールしたらインタラクティブシェルでtwitterをインポートします。
>>> import twitter
twitter.Api() - Apiクラスのオブジェクト生成
何はともあれ、ここから始めなければいけない気がします。twitter.Api()でApiクラスのオブジェクトを生成します。
>>> api = twitter.Api('yosshi71jp', '*********')
'yosshi71jp'はあなたのユーザー名。'*******'はパスワードです。パラメータなしでもOKですが、後々情報を取得する際に、「unauthorized(権限なし)」とか言われるのがオチなので、ここでユーザー名、パスワードは入れておくべきかと思います。
api.GetUser() - Userクラスのオブジェクト生成
各ユーザーの情報はUserクラスのオブジェクトに格納されています。Userクラスのオブジェクトはいろんな方法で生成されるわけですが、ここでは一つの方法として、api.GetUser()を取り上げます。例えば、最近twitterを始めた福田萌ちゃんの情報がほしいなーとか思ったら、
>>> moe = api.GetUser('fukudamoe')
ってやると、萌ちゃんの情報が詰まったオブジェクトが生成されます(おれ、気持ち悪いw)
ここから、萌ちゃんの情報を取得するにも方法はいろいろなんですが、例えば、辞書型で全てのデータを取るなら
>>> moe.AsDict()
もっと個別に、たとえば名前やユーザー名を調べたいときには
>>> print moe.GetName() # 名前 福田萌 >>> print moe.GetScreenName() # ユーザー名 fukudamoe
みたいになります。
api.GetFriends() - Followingについて調べる
誰をフォローしていて、誰がフォローしてくれているのかという情報は、ネットワークを作成する上で最も必要な情報だと考えています。フォローしている(Following)の情報を取得するには、api.Friends()を使います。ただ、フォローされている(Follower)の情報は取得できないかも(?調査中)です。それでは、また福田萌さんについて調べますw
>>> api.GetFriends('fukudamoe') # Following情報 [<twitter.User object at 0x5a99550>, 〜〜〜 中略 〜〜〜 <twitter.User object at 0x5a9d2d0>]
見ての通り、戻り値はUserオブジェクトのリストです。1つ1つのオブジェクトを見ていくことで、誰が福田萌さんをフォローしているのかということが分かります。
まとめ
もしかしたら、ここに書いた内容は多くの人のtwitterモジュールを使用する目的からは外れている気がします(普通、自動的にPOSTすることを考えそうなんで)。なので、使える情報になっているかはわかりませんが、詳しい情報は
Python: module twitter
がとっても分かりやすいので、こちらを参照してください。