2012年5月1日火曜日

WebベースのTwitterClientを作るまで

まず、どうして作ったのか。うちの学校では基本的に学内回線からTwitterできません(スマフォClient、テザリング、ポケットWiFiとか使えばいいんだけど)しかも、私はガラケーです。

最後の望みで合ったTabtterの仕様期間も切れてしまったので、作ってみようかなと思いました。

実装はPython+Flaskです

今回の実装は実装速度を重視したので、ステップの横に所要時間を書いて行きます。

  1. Twitterの認証:前々に紹介したFlaskでTwitter認証を行うモジュールで一瞬でした(10分)
  2. TimeLineの取得:Tweepyというライブラリを使って瞬殺。(5分)
  3. Tweetする:Tweepyで瞬殺(3分)
  4. もう取得したTweetはTimeLineに表示しない:取得したTweetIDの最大を持っておいて次に取得したときそのさっきのTweetIDの最大より大きい間でWhileを回す。(8分)
  5. 適当なHTMLを書く(8分)
  6. ajaxでTimeLineを更新するために適当なjavascriptを書く(8分)
  7. アイコンをtwitter.comから取得するのではなく、TwitterClientのサーバで通信を行いそれをクライアント側に返す(10分)
以上で最小構成のTwitterクライアントが完成です。
Timelineが確認できて、TweetをPOSTできるだけですが。所要時間が所要時間ですし。
まあ、いいかなってかんじです。
なぜ、WebベースのTwitterクライアントなら学内からできるのかというと。
twitter.comとの通信をすべて自前のサーバに任せてしまえば、学内のネットからは自前のサーバに接続するだけなので、その自前のサーバがブロックされない限りはブロックされないようになるというしくみです。なので、アイコンもサーバから取得するようにするのです。


http://pythonmongo-higumachan.dotcloud.com/

これが作ったクライアントです。
ちなみにデプロイで詰まってしまったのでデプロイでするのに実装時間の4倍かかってしまいました。

0 件のコメント:

コメントを投稿