Follower's Followers
開発時間数時間のとん挫したものだけどせっかく作ったのでさらしておく。
これはTwitterの自分のフォロワーと、そのフォロワーをフォローしている人が何人いるかを調べるJavascriptアプリ(重複はカウントせず)。たとえばRTなんかされたときに自分が持つフォロワー数以上の影響力があるはずだけどまぁそれを数字化してみようという試み。
フォロワーが140人ぐらいの人は、まぁ動くと思うので試してみてください。
ちなみにフォロワーが80人ぐらいであっても、Follower's Followersは数万いったりもします。後述する理由でフォロワーが150人以上いると1時間単位で時間がかかってしまうのだけど、僕の場合フォロワーが今564人いて、146人を累計したところで33万4801人のFollower's Followersがいました。
僕の場合、フォロワーが579人いて、78万6660人のFollower's Followersがいました。
で、やってみたもののなかなか実用的には使えないものになってしまった。なぜかというと、
1. TwitterのAPIへのアクセスは、アクセス元のIPごとに1時間150回まで(ログインとかしてもらうとちょっと増えるが)。で、フォロワーのフォロワーを調べるのにフォロワー1人あたり1リクエストが必要。最初に指定したアカウントのフォロワーのリストも得る必要がある。つまり、1時間に調べられるのが149人分のフォロワーの数でしかないので、500人とかフォロワーがいると、4時間ぐらいかかる。
2. Javascriptでの実装だとクロスドメインアクセスになるので、JSONの読み込みはできず、JSONPを使う。AJAXエンジンとしてjQueryを使ったけど、JSONPの場合、サーバーエラーのHTTP Statusが取れないために、エラー内容に応じた対応ができない。Twitter APIはエラー時にAPI実行回数でのエラーだったら400とか、過負荷だったら503とかのHTTP Statusを返すのだけど、それが分からないので、全部ひっくるめてタイムアウトでエラーを取るしかない。
なんだけど、Twitter のAPIって時と場合によって、フォロワーのプロフィールを取るだけで40秒とかかかって戻ってくるときってのがたびたびあって、タイムアウトの処理がやりずらい。ときに今回、せっかく100人累計したのに本当にクリティカルな問題がおきて処理をやめたほうがいいのかとかの判断ができない。
と、大きくこの2つの問題を解決することができず。
一応、150人以上のフォロワーがいる場合でも、ブラウザを放っておけばカウントを続行するような処理を入れてみたものの、時間がかかるのでちゃんと動いているか未検証です。
| カテゴリー | : | 2010,diary |
| トラックバックURL | : | http://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/162 |
トラックバックURL: http://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/162