PythonでTwitterクライアントを作ってソースコードを公開している人がほとんど見当たらないので
自前で作ってみることにした。
今回の実装したい機能は
・過去のツイートのバックアップ
・過去のツイートの削除
つまりは黒歴史の削除用途(黒歴史はローカルに保存)
バックアップ機能まで作成したものをgithubにあげてみた。
https://github.com/tzmfreedom/TwitterClientByPython
ちなみに、Pythonレベル1なので温かい目で見るように!!w
使い方としては
config.jsonに自分のTwitterアプリのconsumer_keyとconsumer_secretを入力
twitter_client.py -a をプロンプトで叩く
OAuth認証開始で、ブラウザに表示されたPINコードを入力してEnter。
token.jsonというファイルが生成される
twitter_client.py -o < token.json をプロンプトで叩く
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