TwitterのAPIをたたくPythonスクリプト
ちょっと必要があって、Pythonで手軽にTwitter APIをたたくためのスクリプトを書いてみた。
あまりコードを書きたくなかったので、YAMLに記述したAPIが利用できるようにしてみようと工夫してみたつもりが、いざやってみるとYAMLの編集するのが思いのほか大変で面倒くさかったです。
YAMLは以下のようになっています。(URLの記述を横着しようとしたせいで汚くなっている部分があります。)
'http://api.twitter.com/1': 'statuses': # メソッド名 , GET or POST, URL , 必要な引数 - [ 'home_timeline', 'GET' , 'home_timeline', '' ] - [ 'update' , 'POST' , 'update' , 'status' ] - [ 'tweet' , 'POST' , 'update' , 'status' ]
update メソッドで http://api.twitter.com/1/statuses/update.json が POST で呼ばれて、結果がJSONで帰って来るという案配です。
ここにあるAPIは大体使えます。
http://apiwiki.twitter.com/Twitter-API-Documentation
使い方とか
OAuthのキー等は事前に準備しておく必要があります。
あまりテストしてませんが、YAMLが間違っていなければきちんと動くはず。
import twitter def dump_data(result, indent = 0): result_list = [] tab = ' ' * indent if isinstance(result, basestring): return result elif isinstance(result, dict): for key in result: if isinstance(result[key], dict) or isinstance(result[key], list): result_list.append('%s[%s]: %s' % (tab, key, '')) result_list.append(dump_data(result[key], indent + 1)) else: result_list.append('%s[%s]: %s' % (tab, key, result[key])) elif isinstance(result, list): for item in result: result_list.append(dump_data(item, indent)) result_list.append('%s%s' % (tab, '-' * 80)) return '\n'.join(result_list) consumer = dict(consumer_key = '', consumer_secret = '') token = dict(token = '', token_secret = '') oauth = twitter.OAuth(consumer, token) api = twitter.TwitterAPI(oauth) result = api.tweet(status=u'なるほど四時じゃねーの') print dump_data(result)