テックノート@ama-ch このページをアンテナに追加 RSSフィード

2008-05-14

python-twitterまとめ 〜導入まで

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


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


インストールするよ!

  • 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終わらせたい。

moondialmoondial 2009/10/23 18:16 はじめまして。Python用のついったークライアント tweetea というものを作ったので、もしよろしければご覧ください。
紹介記事→http://moondial0.net/blog/ao7
(ときどき繋がらないことがありますがその場合はごめんなさい)
なかでもストリーミングAPIは面白いですよ!IDLEから3行で試せるのでぜひお試しください。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証