Pages

2011年4月5日火曜日

pythonでtwitterbot

pythonの勉強がてらtwitterのbotを作成中。



最初は"python-twitter"を使ってたけど、どうやらコイツはBasic認証にしか対応してないっぽい。

現在twitterはBasic認証を廃止してOAuthしか使えないらしい。

というわけでOAuthの使える"tweepy"を使うことに。





1.
以下からtwitterにアプリケーション登録

http://twitter.com/apps/new

今回はbotなので、"ブラウザアプリケーション"、"read&write"にチェック。

他はまぁ大体適当で大丈夫。


2.
登録すると"ConsumerKey"、"ConsumerSecret"ってのが貰える。

後々使うのでメモっておく。


3.
アプリケーションからtwitterを触るには"AccessToken"、"AccessTokenSecret"ってのが必要。

以下のソースを実行して取得する。

import tweepy

consumer_key = raw_input('Consumer key: ').strip()
consumer_secret = raw_input('Consumer secret: ').strip()
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)

print auth.get_authorization_url()

#get access tokecn
token = auth.get_access_token(verifier=raw_input('password: ').strip())
print 'Access token:'
print '  Key: %s' % token.key
print '  Secret: %s' % token.secret

これで準備完了。


4.
あとは"http://joshthecoder.github.com/tweepy/docs/index.html"に従って使うだけ。

以下サンプルソース。

成功すれば"wakega_wakaranaiyo"とツイートされる。

import tweepy
def createAPI():
    consumer_key = '手順2で取得したもの'
    consumer_secret = '手順2で取得したもの'
    access_key = '手順3で取得したもの'
    access_secret = '手順3で取得したもの'

    # create OAuth handler
    auth = tweepy.OAuthHandler(consumer_key, consumer_secret)

    # set access token to OAuth handler
    auth.set_access_token(access_key, access_secret)

    # create API
    return tweepy.API(auth_handler=auth)

api = createAPI()
api.update_status("wakega_wakaranaiyo")

0 コメント:

コメントを投稿

Blogger Syntax Highliter