OpenSocial

実はOpenSocialに付いてほとんど予備知識ないわけなんですが・・・。とりあえずこのセッションで理解したことなどをまとめてみる。間違ってるかもしれないので、そのまま信じたら駄目だ。



OpenSocialは様々なSNSで管理されている情報を統一されたAPIを通じて処理するための規格。OpenSocialの仕様に決められたAPIが実装されているSNSであれば、OpenSocial対応のガジェットをなんでもその上で動作させることができる。要するに

  • ガジェット開発者: 一つ開発すれば全てのOpenSocialコンテナ(SNS)でガジェットが動作してうはうは
  • コンテナ(SNS)開発/運営者: OpenSocial APIを実装しておけば、いろんなガジェットが動作してうはうは
  • ユーザ: いろんなSNSで同じガジェットが使えたりしてうはうは


という大岡裁き的規格らしい*1。逆に特定SNSに特化した機能を持つ尖がったガジェットが出てきにくくなったりするかもなぁ、と思いましたが、そういうことよりも圧倒的に裾野が広がる利点の方が大きいと言うことなのかな?


で、APIの実装に付いてはSNS作ってるところが仕様見て勝手にやればいいので省略するとして、次はガジェット開発。ガジェットって言っても特にスペシャルな事をするわけではなくて標準的なHTMLとJavaScriptまたはREST APIを使って好きにやればいい。JSまたはREST APIを使えばOAuthで認可される範囲内でユーザーのプロフィールや友人一覧、更新情報なんかを取得できる。


REST APIについてはOpenSocial0.8から実装されるもので、もしかしたらまだ実際に使えるところは多くないかもしれない。ちなみにJSじゃなくRESTにしてなにがうれしいのかというと、例えばブラウザ以外でOpenSocialコンテナから情報を引き出して使用できたりする。Webサービス作ってる人なんかはRESTの方がずっとうれしいはず。


作成したガジェットのテストにはShindigというApacheプロジェクトで公開されてるコンテナが利用可能。ShindigについてはApache参照 http://incubator.apache.org/shindig/ と。


ちなみに今OpenSocial対応してるSNSを利用してるユーザーは2億人を超えるらしいのでさくっと作ったGadjetがいきなり世界に羽ばたく可能性もあり、と。やるしかないっすよ、みなさん。(個人的にはコンテナの方を作ってみたいけど・・・)

*1:まぁ、大岡裁きはみんな損するんだけどさ・・・