Yahoo! Updates on iGoogle

http://farm4.static.flickr.com/3554/3329482018_a6de63f0a3.jpg
http://farm2.static.flickr.com/1369/1393821245_0afd649b9c.jpg

■ 本日の概要

今日は、この記事について、まとめます。
http://developer.yahoo.net/blog/archives/2009/03/igoogle_open_updates.html

Yahoo!のSocial Profileのアクティビティを表示するiGoogleのガジェット作った!
Yahoo!Googleに対してもOpenなんだぞ!」って話ですね。

ガジェットはおそらく、以前Digg?で行われたOpen Stack mtgでAllen Tomがデモしたものっぽいですね。
http://www.viddler.com/explore/redgee/videos/38/

Yahoo! Updates API

http://l.yimg.com/a/i/ydn/social/updt-diagram.png
Updates API - YDN
Updates API Demo - YDN

iGoogle and OAuth Proxy

誰がOAuthしているのか

ガジェットはJavaScriptとかなので、OAuthのアクセスに必要なConsumer Key/Secretなどが丸見えになってしまう。
そもそも、ドメインを超えたHTTP Requestが。。。(詳細は参考リンクのドキュメントを参照してください)

ということで、iGoogleはOAuth Proxyっていう機能を実装して、OAuthの処理をやっています。
そのため、何らかの方法(拡張とかの話もあってで長くなるので省略。OpenSocial入門でも触れられていますので持っている方は既知ですかね?)でiGoogle,ガジェット,Yahoo!間でConsumer Key,Consumer Secretの設定を行うだけでOAuthを利用したAPIにアクセスできるようになっています。
ガジェット側では、利用するOAuthのエントリポイントを指定の方法で記述するだけでいいので、信用できるプロバイダであればセキュリティ的にも安心ですね。

Yahoo! Updates以外にも、MySpaceとかのガジェットも出ています。

■ 感想

今回の話、OpenStackの中でOAuthとOpenSocialの間の部分で個人的には非常に興味深い部分です。
OpenStackの中で、Portable ContactsとOpenSocialの間のあたりをなにも知らない人に説明しようとするとボリューム感が大きくなりすぎて難しいと思っています。
もちろん、説明する相手にもよりますが。

そこで、今回のように、

  • JavaScriptでコードを書くガジェットからもOAuth使えるんですよ
  • ガジェット側ではOAuthのコードを実装しなくてよいんですよ
  • ガジェットを置いておく側で実装しちゃうことをOAuth Proxyって呼んでます

というところまでOAuthの説明で済ましておく。

すると、

  • SNSがこういうガジェットを取り入れられたらどうなると思いますか?
  • ガジェットがSNSのグラフを利用できたり、一言機能を使えたりしたら?
  • SNS外部のOAuthを用いたAPISNSソーシャルグラフを組み合わせると可能性は∞じゃないですか?

って話を進めると、すんなりOpen SocialのJava Script APIあたりの話に入れるような気がする。

今回、変な見出し形式にしたのは、いつも記事がダラダラ長くなってしまうから。
論文かくみたいな感じで書いていけば短くなる or ダラダラしないような気がするので今回からこの形式にしてみます。

■ 参考リンク

今回の話は技術的には2009年になってから△△の仕様が決まったとかいう新しい話ではありません。
以前からWeb上で説明されているものの実例の一つとして紹介してみた感じです。