Tender Surrender

先日のGoogleディベロッパー交流会でShindigのphp版が公開されていることを知り、試してみました。

Shindigをチェックアウトする

> svn co http://svn.apache.org/repos/asf/incubator/shindig/trunk .

Shindigのソースがチェックアウトされます。(今回試したリビジョンは637739)

> ln -s ~/Development/Shindig/php/gadgets /Library/WebServer/Documents/gadgets

これでローカルホスト上で見れるはず。ブラウザに下記のURLを入力します。

http://localhost/gadgets/ifr?url=http://www.labpixies.com/campaigns/todo/todo.xml

NotFound

見れません、、、

httpd.confを修正

どうやら、Mac OS X(Leopard)のhttpd.confのデフォルト 設定が邪魔している模様。

/etc/apache2/httpd.conf

を書き換えます。/etc/httpd/httpd.confではないことに注意。(Tigerはこれだった)

<Directory "/Library/WebServer/Documents">

内の

AllowOverride None

AllowOverride All

に変更します。これでいけるはず。。。

ToDoGadget

できた!これで、色々いじれますよ・・・

Read on...

前提:Google Gadgetでurlタイプを指定した場合、iframe内にはリモートサーバーの内容がそのまま表示されるため、Ajaxで友達情報等を取得しようとすると、ドメイン超えが必要となり、プロキシ経由でサーバー間通信となりRESTful APIがないと役に立たない

どうやらOrkutでは、Content Type=’url’を許可していない模様。

MYSQL database connection using PHP for my gadget ? – Orkut Developer Forum | Google グループ

Content Type=’url’を指定すると404が返るらしい。 404が返ること自体はバグとのことですが、Content Type=’url’が動くようになったところで、ドメインを超えてOpenSocialを利用するにはプロキシを介したRESTful APIによるアクセスが必須であることは確認できました。これがRESTful APIが正式に登場するまでの暫定措置なのかどうかは未確認ですが、前提は誤っていなかったようです。

Read on...

表参道のダイヤモンドホールで行われた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メインの僕にとってはありがたい発見。

他にも

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

Read on...