2010年5月10日月曜日

ChirpUserStreams

ChirpUserStreams を試してみました。
これはまだTwitterの新しいStreamAPIらしいのですが、まだベータのものです。
正式に対応している Streaming API Documentationでは、PublicTimelineから特定のキーワードなどを指定して取得はできますが、自分のHomeTimelineの情報を取得することができません。
そこで、ChirpUserStreams。これを使うと、HomeTimelineがStreamで取得できてしまいます!

StreamAPIがを使うと、リアルタイムにエントリが取得でき、嬉しい事になります。
何か更新があった時にすぐに情報が取得できるのと同時に、何回もアクセスする事がないのでAPI消費も少なくする事ができます。
ちなみに、現在のChirpUserStreamsでは、通常のAPIで使用できる回数:350は全く消費されないようです。

ただ、残念なのが、認証方式がBasic認証しかまだないという事。うむー。
良く分かってないのですが、Basic認証情報が入ったユーザ/パスワードの情報が入ったHTTP HEADERは最初のアクセス時に送信されるだけなので、それ以降のエントリ情報受信が始まればヘッダー情報は流れないから傍受されても致命的ではないのかな? まぁ、だからといって...ですが。

そんな、ChirpUserStreamを空うさぎの開発版に組み込んでみました。
実装は、すぎゃーんメモを参考にさせて頂きました。有り難うございます!

エントリがリアルタイムに反映されていくのはやっぱり気持ちいい!
FriendFeedのリアルタイムAPIの時と同じ感動を味わいました。
これを味わってしまうと、今までの定期的に取得するタイプに戻るのがツライですw

ChirpUserStreamsでは、ツイート情報だけでなく、「フォローした」「Favoriteつけた」「Retweetした」という情報も入ってきます。
これを空うさぎで通知を出すように試してみたら、凄い量の情報量でビックリしてしまいましたw
この人、めっちゃフォローしまくってる...手当たり次第やってんの? とか丸分かりでちょっと怖い感じもしますが。

空うさぎ正式版でも、ChirpUserStreamsを使えるように空うさぎでは対応したいなぁーと思っているのですが、Basic認証の危険性をちゃんと警告してから使えるようにしないとダメですね。
しかも、API変更や、そもそも無くなるってこともあるし。

そう考えると、クライアントアプリで採用するのはまだ早い感じですが、空うさぎぐらいのマイナーなクライアントであれば許される?!そう思いたい程、やっぱリアルタイムでの取得はいいもんですー♪

...ということで、明日からはもうちょっとChirpUserStreamsでの実装を詰めていこうとおもいます。

4 comments:

indigo-x さんのコメント...

突然で申し訳ございません。GoogleでOAuthGetAccessTokenを検索した所、同じ箇所の問題を書かれていましたので、もし解決されていたらと思い書きました。
OAuthでGoogleで認証させようとするとOAuthGetAccessTokenでBadRequestが発生します。いろいろ調べましたが全く解決できません。もし解決されていましたらご教授お願いします。よろしくお願いします。

aqubi さんのコメント...

indigo-x1さんこんにちは。GoogleのOAuthGetAccessTokenは特に問題なく取得できたと思ったのですが...どのタイミングの発言がひっかかったのだろう??
Googleの場合、Playgroundのページ http://googlecodesamples.com/oauth_playground/ で試してみるとなにか情報が得られるかもしれませんよ!

indigo-x さんのコメント...

何となく分かりました。OAuthBase.cs(C#)にバグがあるみたいです。Twitterなら問題ないですが、Googleの場合TokenにURLエスケープが必要なのでそこらが一部抜けてるようです。現状Token内にエスケープ不要な時(3回に1回ぐらい)のみ動作します。ありがとうございました。

aqubi さんのコメント...

Tokenでエスケープが必要だったのが原因だったのですね!確かに私も、エスケープいるのか...と気付いた場面があったことを思い出しました。。すいません。