ページ

2010年9月16日

ありえるたんをOAuthに対応させたときのメモ

twitterがOAuthになって、今まで使っていたTwythonが使えなくなりました。twythonの中にoauth.pyとかいるので対応していると信じていたのですが、しかたありません。それで別のライブラリ、tweepyを使うことにしました。

1. インストール

easy_install tweepy

ちなみに、僕が会社で使っているtweepyはgithubからとってきて、ちょこっと修正を加えているものです。

2. Twitterへのアプリケーションの登録

OAuthを使ってTwitterのAPIを操作するためにはtwitterにアプリケーションを登録しないといけません。認証に必要なtokenとかを取得するためですね。登録画面から登録します。必要な項目を埋めると、Consumer key、Consumer secretなどが出力されます。

次に認証に使うTokenを取得します。Tokenの取得には、tweepy-exampleにあるgetaccesstoken.pyを使います。この人を実行すると、Consumer keyとConsumer secretの入力を求められます。先ほど取得したものを入力するとブラウザが立ち上がり、pinナンバーが表示されます。コンソール上にはpinナンバーの入力が促されているので、そこにpinナンバーを入力すると、tokenのkeyとsecretが出力されます。これらはメモっておいてください。ちなみに、ブラウザを立ち上げずに、自分でwebにアクセスしてpinナンバーを取得できそうな気がしますが、一回きりしか使わないので、割り切りでしょう。

3. tweepyのオブジェクトを作る

次にtweepyのoauthを使ってTwitter APIを利用できるようにします。

import tweepy

access_key="2で取得したアクセスキー"
access_secret="2で取得したシークレットキー"


auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth_handler=auth)

これで、OAuthを使って認証できるようになりました。ちなみに、この人は、Proxyを通らないので、Proxyがある環境は僕のgithubから持って行ってください。

4.  とりあえず、投稿する

api.update_status("Hello, world!")

5. 効率は無視したfollowしてくれている人をfollowしかえすコード

人数が増えると悲しいことになるコードですが、それはサンプルと言うことで・・・

me = api.me()
friends = me.friends()
followers = me.followers()
for follower in followers:
    if not is_friend(follower, friends):
        api.create_friendship(follower.id)

def is_friend(self, follower, friends):
    follower_id = follower.id
    for f in friends:
        if follower_id == f.id:
            return True
    return False

でわでわ

0 件のコメント: