2013-10-12

Python初心者がPython(標準ライブラリ)でTwitterクライアントを作ってみた

PythonでTwitterクライアントを作ってソースコードを公開している人がほとんど見当たらないので

自前で作ってみることにした。

 

今回の実装したい機能は

・過去のツイートのバックアップ

・過去のツイートの削除

 

つまりは黒歴史の削除用途(黒歴史はローカルに保存)

 

バックアップ機能まで作成したものをgithubにあげてみた。

https://github.com/tzmfreedom/TwitterClientByPython

 

ちなみに、Pythonレベル1なので温かい目で見るように!!w

 

使い方としては

  1. config.jsonに自分のTwitterアプリのconsumer_keyとconsumer_secretを入力

  2. twitter_client.py -a をプロンプトで叩く

  3. OAuth認証開始で、ブラウザに表示されたPINコードを入力してEnter。

  4. token.jsonというファイルが生成される

  5. twitter_client.py -o < token.json をプロンプトで叩く

  6. out_00000.json, out_00001.json って感じで自分のツイートのバックアップが自動的に生成

って感じ。

 

自分用に作ったので全然汎用的に作ってない上に自分のTwitterアプリ登録が必要っていうw

クライアントアプリだし、俺のアプリ情報晒したくねぇし!

しかも、よくよく考えたらpythonインストールしている人しか使えねぇわ。

あとでpy2exeとかで実行ファイルとかにしときます。

linuxやmacは標準でpython入ってる(と思う)から問題なし!

 

あと、久々にOAuth1.0を自前で作ってみたけど、相変わらずsignature生成が鬼門だったわ。

OAuth2.0がすげー楽なことがわかりました。

 

とりあえず色々と作ってみてPythonレベル上げてきます。

今回良く使ったコードパターンを下記にメモってみる。

 

[GET送信]

req = urllib.request.Request(url=url + '?' + urllib.parse.urlencode(dict))
res = urllib.request.urlopen(req)
retString = res.read().decode('UTF-8')

 

[POST送信]

req = urllib.request.Request(url=url, data = urllib.parse.urlencode(dict).encode())
res = urllib.request.urlopen(req)
retString = res.read().decode('UTF-8')

 

[URLクエリパース]

urllib.parse.parse_qs(returnTokenParameter)

 

[JSONパース]

json_decoder = json.JSONDecoder()
for one_json in json_decoder.decode(retJson):
    pass
このエントリーをはてなブックマークに追加