はてブロ@ama_ch

https://twitter.com/ama_ch

python-twitterまとめ 〜導入まで

python-twitterというものを使うと簡単にTwitterAPIなどで遊べると噂に聞き、導入してみました。

まずは必要なものをダウンロードする

インストールするよ!

  • simplejson編
    • simplejson-1.9.1.tar.gzを適当な場所に解凍
    • できたsimplejson-1.9.1ディレクトリへ移動する
    • ターミナルで「$python setup.py install」
    • インタラクティブシェルで「>>> import simplejson」を打ち、エラーが出なければ無事完了

これでお手軽にTwitterのデータをPythonでいじれるようになります!

せっかくだから少し遊ぶ

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"てすとー")

http://twitter.com/ama_ch/statuses/813909605

今日はここまで

近々これでいろいろ遊んでみます。明日にはみんPy終わらせたい。