簡易Twitterクライアント作ってみた。GAE/Python

月曜日, 2月 7th, 2011 by

昨夜、OAuthでの認証がうまくいったので、今日はTwitterのTLの取得と発言を実装してみた。
お試し環境 → http://nisetwitter.appspot.com/で公開している。
エラー処理を全く記述していないので、API呼び出しに失敗すると、生のエラーメッセージが出力されてしまう。

ソースコード

昨日のGAE/PythonでOAuthのソースコードの、MainHandlerを数行書き換えるだけで作成できてしまった。

  • 12行目
    テキスト入力フォームを表示
  • 13行目
    タイムラインを取得
  • 14行目~16行目
    タイムラインを表示
  • 21行目
    発言を登録
  • 22行目
    元の画面にリダイレクト
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class MainHandler(RequestHandler):
    """Demo Twitter App."""

    def get(self):
        client = OAuthClient('twitter', self)
        write = self.response.out.write; write(HEADER)
        if not client.get_cookie():
            write('<a href="/oauth/twitter/login?phpMyAdmin=cfc2644bd9c947213a0141747c2608b0">Login via Twitter</a>')
            write(FOOTER)
            return
        write('<a href="/oauth/twitter/logout?phpMyAdmin=cfc2644bd9c947213a0141747c2608b0">Logout from Twitter</a><br /><br />')
        write("""<form method="post" action="/"><input type="hidden" name="phpMyAdmin" value="cfc2644bd9c947213a0141747c2608b0" /><input type="text" name="status" size="100"><input type="submit" action="/"></form>""")
        timeline = client.get('/statuses/home_timeline')
        for status in timeline:
            write("""<img src="%(image)s"/> %(user)s:%(text)s (%(source)s)""" % {'image':status['user']['profile_image_url'], 'user':status['user']['screen_name'], 'text':status['text'], 'source':status['source'] })
            write("<br><br>")
        write(FOOTER)

    def post(self):
        client = OAuthClient('twitter', self)
        client.post("/statuses/update", status =self.request.get("status").encode('utf-8'))
        self.redirect("/")

まとめ

AJAXを利用して、

  • ページをリロードせずにTLを取得
  • >ページをリロードせずに発言

などを実装すると、より実用的なTwitterクライアントになるが、世間には使いやすいTwitterクライアントはいくらでもある。四角いタイヤを発明している時間はないので、何を作るかしっかり考えて勉強を進めていきたい。

Facebook comments:

comments

Leave a Reply


Get Adobe Flash player
single