The jonki

呼ばれて飛び出てじょじょじょじょーんき

tweepyでOAuth投稿なう@CentOS

Pythonで動いてるTwitterボットたちをOAuth移行するため、何がいいか探してた。

めんどくさがりやな自分として以下の条件で

  • 導入が簡単。
  • 分かりやすい。
  • うごきゃいいんだよ。

まぁ、あれですね。楽にやりたかったわけですよ。oauth-python-twitterを最初に見つけたんですが、結局tweepyの方が楽でわかりやすかったんでこっちで。

参考&感謝

今回の記事は id:Number6 様を参考に丸パクリしました。ちょびっとだけ認証のときの手順が違います。ほんとちょびっと。

OAuthについてはgihyoの解説が丁寧です。

アプリケーション登録

アプリケーション登録申請を行い、consumer_keyとconsumer_secretをメモっときましょう。

tweepyのインストール

$ sudo easy_install tweepy

easy_install入ってない方は入れる。

$ sudo wget -P /usr/local/src http://peak.telecommunity.com/dist/ez_setup.py
$ cd /usr/local/src
$ sudo python ez_setup.py

access_key、access_secretを発行する必要があるので、
下記gitリポジトリをチェックアウトして、getaccesstoken.pyを使わせてもらう。

$ git clone git://gitorious.org/tweepy/examples.git
$ cd examples/oauth
$ python getaccesstoken.py

自分の場合、リモート上で動いているのでwebbrowser.open()はコメントアウトしてURLをprintしてます。
で、そのURLをコピペしてverificationをゲットしてます。

#webbrowser.open(auth.get_authorization_url())
print auth.get_authorization_url()

tweepyをimportするだけでわずらわしいoauth周りのライブラリを意識しないで済むので
個人的には好みです。
こんな感じに投稿されます。

# /usr/bin/python
# -*- coding: utf-8 -*-

import tweepy

consumer_key = 'xxx'
consumer_secret = 'xxx'

access_key = 'xxx'
access_secret = 'xxx'

def post(message):
        auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
        auth.set_access_token(access_key, access_secret)
        api = tweepy.API(auth_handler=auth)
        api.update_status(message)

def main():
        post("fuga")

main()