表参道のダイヤモンドホールで行われた Google ディベロッパー交流会に参加してきました。今回は OpenSocial がテーマということで、ドンピシャ。 色々な疑問を解決することが出来ました。

OpenSocial アプリケーション(ガジェット)は SNS 間を持ち回れない? #

とても基本的な疑問ですが、`OpenSocial は異なる SNS 間で API を共通化することで、アプリケーション開発者の負担を軽くすることが目的のため、互換性は保証されるものと考えていましたが、どうもそういう訳でもないらしい。なぜなら、OpenSocial はアプリケーションを乗せるもの (Orkut では Google Gadget) について規定していないから。

OpenSocial の仕様書を見ると、サンプルコードはすべて Google Gadget を想定して書かれていますが、実際の仕様に Google Gadget が要件であるとは書いていません。つまり、別に Opera Widget だろうと Yahoo! Widget だろうと Dashboard Widget だろうと、乗せられるところに乗せてよい訳です。そこでこの辺りをはっきりさせるため、プレゼンをしてくれたクリスさん (ラストネームは忘れた) に聞いてみました。

  • ガジェットは Google Gadget のみを想定している訳ではない。
  • MySpaceApp や hi5、Orkut は Google Gadget 形式で提供される (未確認)
  • アプリケーションは基本的に SNS 間で共有できるが、拡張機能に対応していると、別の SNS では動かない可能性もある。

僕の拙い英語力だと、なんだか釈然としない答えしか得られませんでした。なんだかまだもやもや感が残ってますが、個人的にこう思ってます。

  • ガジェットは Google Gadget である必要はない
  • アプリケーション開発者は、コア機能は共通かできるが、ガジェット部分については SNS ごとに用意する必要がある。

OpenSocial は RESTful API の仕様が出るまで役に立たない? #

OpenSocial は SNS から友達の情報を取得できることが目玉な訳ですが、当然認証認可が必要になります。JavaScript の API では、単純に newDateRequest を使って簡単に取得できるように書いてはありますが、コンテナ側の実装はそう単純ではありません。

Google Gadget を前提とした場合、コンテンツタイプとして 2 つの選択肢があります。1 つは Gadget XML 中に HTML も記述する html モード。もうひとつは Gadget XML 中にリモート URL を記述する url モードです。html モードは Google の管理する gmodules.com というドメイン上で動作しますが、url モードの場合は、サードパーティーの管理する全く別のドメインで動作することになります。察しの良い人はこの時点で気付くかと思います。

リモートサーバーから OpenSocial の SNS 情報にアクセスするには、そのリモートサーバーのプロキシを介して、SNS の RESTful API を叩く以外、方法がない

これは単純に Ajax がドメイン超えできないということに起因していますが、とても重要なこと。RESTful API がまだ正式に用意されていない OpenSocial なだけに、これがないと使い物にならないんじゃないの? MySpace の RESTful API ってなによ!? Orkut の iLike アプリってリモートじゃね!?という疑問が募ってしまったのでした。(あれ?Ajax って JavaScript 自体の置いてあるドメインだったら直接リクエスト投げられるのか!?)

Shindig について #

先日インストールした Shindig ですが、まだ Java しか対応していないものだとばかり思い込んでました。そしたら、Java よりも実装は遅れているけど、PHP もあるというじゃないですか!!早速帰ってコードを見てみると、、、確かにありました。お作法が Java っぽいのでアレレな感じですけど、PHP メインの僕にとってはありがたい発見。

他にも #

などなど、、、子供がうるさいので今日はこの辺で。