python-twitterまとめ 〜導入まで
python-twitterというものを使うと簡単にTwitterのAPIなどで遊べると噂に聞き、導入してみました。
まずは必要なものをダウンロードする
- python-twitter - Google Codeで、python-twitter-0.5.tar.gzをダウンロードする。
- Python Package Index : simplejson 1.9.1で、simplejsonをダウンロードする。このモジュールがないと動かない。
インストールするよ!
- simplejson編
- simplejson-1.9.1.tar.gzを適当な場所に解凍
- できたsimplejson-1.9.1ディレクトリへ移動する
- ターミナルで「$python setup.py install」
- インタラクティブシェルで「>>> import simplejson」を打ち、エラーが出なければ無事完了
せっかくだから少し遊ぶ
python-twitter - Google Codeの下の方とか、ドキュメントPython: module twitterを見ながらやってみました。ただのコピペだけど><
>>> import twitter >>> api = twitter.Api("ユーザー名", "パスワード") >>> status = api.PostUpdate("Hello, python-twitter!!")
これだけでTwitterに投稿できます!
http://twitter.com/ama_ch/statuses/810947484
あ、これで投稿できるのはascii文字だけみたいです。日本語で投稿しようとしたらこんなエラーでた><
>>> status = api.PostUpdate("python-twitterから投稿してるよ!") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/twitter.py", line 1054, in PostUpdate json = self._FetchUrl(url, post_data=data) File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/twitter.py", line 1418, in _FetchUrl encoded_post_data = self._EncodePostData(post_data) File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/twitter.py", line 1391, in _EncodePostData return urllib.urlencode(dict([(k, self._Encode(v)) for k, v in post_data.items()])) File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/twitter.py", line 1356, in _Encode return unicode(s).encode('utf-8') UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 14: ordinal not in range(128)
5/18追記
日本語で投稿できました。u"文字列"でユニコード指定してあげるだけだった><
>>> import twitter >>> api = twitter.Api("ユーザー名", "パスワード") >>> status = api.PostUpdate(u"てすとー")
今日はここまで
近々これでいろいろ遊んでみます。明日にはみんPy終わらせたい。