tweepyとmechanizeでaccess_token取得

tweepyのテスト用に自分のアカウントのaccess_tokenを取得したかったのだが、

ということで、tweepy+mechanizeでPINコード取ってaccess_tokenを取得するコードをぼちぼち書いてみた。

用意するもの:

  • twitterアプリのconsumer_key, consumer_secret*2
  • 情報を読み書きしたいtwitterアカウントのid/password
import re

import tweepy
import mechanize

br = mechanize.Browser()
br.set_handle_robots(False)

consumer_token = '**********************'  # 適宜書き換える
consumer_secret = '******************************************'  # 適宜書き換える

auth = tweepy.OAuthHandler(consumer_token, consumer_secret)
url = auth.get_authorization_url()

br.open(url)
br.select_form(nr=0)
br['session[username_or_email]'] = 'YOUR_ACCOUNT'  # 適宜書き換える
br['session[password]'] = 'YOUR_PASSWORD'  # 適宜書き換える

response = br.submit().read()

m = re.search(r'<code>(?P<PIN>\d+)</code>', response)
if m:
    PIN = m.group('PIN')
    access_token = auth.get_access_token(verifier=PIN)

    print "access_key:", access_token.key  # '00000000-*****************************************'
    print "access_secret", access_token.secret  # '*****************************************'
else:
    print 'boo...'

*1:w3mはあるけど

*2:https://dev.twitter.com/ から適当に登録してメモる