OpenSocial

OSC 2009/Fall Tokyo

CouchDB in the room 参加された皆様お疲れ様でした。いろいろ不手際があって、会場にぎりぎりについたんですが、なんでこんなに人がいるの?と。。。そして、正直、これはまずい、と思った。10人ぐらいでまったり雑談程度に実際のソースコードを見せながら…

OpenSocial 用DSLをJavascriptで。

gadget.xml を CouchDBの show 機能で出力するものを実装中。

gadget.Prefs()

現状6つのPriority0(必須)のテストケースが落ちる。そのうち5つは gadget.Prefs 関係なので Shindig を調べてみた。

ひとまず 0.8.0 Compliant な状態に。

Passed Failed Warnings Unverified Total 94 25 5 29 153 ひとまず、これでWebJourneyは OpenSocial 0.8.0 (0.8.1?) Compliant です、といってもいいのだろうけれど、実際は 必須となっているところにはマルチビューの対応とか、そういったことは含まれてい…

OpenSocial のスペック読み解き。。。

行間というか、Shinding実装間を読まないと、結局Shindigのがアテにならなくて、ほとんど一から実装という罠。

OpenSocial のデータをCouchDBドキュメントで表現する。

people.get と activities.get の実装がひとまず完成しました。sortOrder とか networkDistance とかはまだですが。以下No-SQL所感。

@me とか @self とか

Shindig の social/spi/UserId.php 参照すると、 public function getUserId(SecurityToken $token) { switch ($this->type) { case 'viewer': case 'me': return $token->getViewerId(); break; case 'owner': return $token->getOwnerId(); break; case 'u…

partuzaのガジェット追加のシナリオ

Partuza のソースを追うに当たって、2-legged oauthは納得したので後は実際のユーザーストーリーの流れに即してコードを追うことに。ということで、手元にインストールして試してみたメモをベタバリ(インストールログじゃないです)、したものを徐々に編集し…

OpenSocial OAuth の実装を追いかける。

書いている最中に下書き保存して休憩したら、下書きが消えたので絵だけ復元しつつ。。。やる気レス。前回は http://d.hatena.ne.jp/yssk22/20090722#1248283792 の辺りで、partuza で大体 /people/{guid}/{selector}/{pid} の例 がどう取り扱われるかわかっ…

RESTful API の認証と認可

OpenSocial の RESTAPI には @me というパラメーターがある。これは、「認証済みクライアント自身」をパラメーターとして渡すときに用いるようだ。例えば、はてダの場合、yssk22 のURIは http://d.hatena.ne.jp/yssk22/ であって、これはクライアントのFiref…

partuza のコードを追いかけて。

24inchのiMacでも画面が狭いと思うようになった本日。Macユーザーの方って、ソースを読むときどうしているんでしょう?とりあえず、KEdit のウィンドウ大量に開いて読んでいるのですが、読む専用のいいツールってないんですかね*1それはともかく、Shindig を…

メモ。People のドキュメント表現

OpenSocial では、各種データのRepresentationがREST SPECの中に規定されている。例えば、People などは、 http://www.opensocial.org/Technical-Resources/opensocial-spec-v09/REST-API.html#personFields にある。これをこのままCouchDBにいれとけばいい…

= Rackがあると便利

OpenSocial Containerのサーバー側の実装にCouchDBを使おうとすると、JSON-RPCを何とかする必要がでてきます。Shindig のクライアント側(JavaScript)の実装では、JSON-RPCを使っているからです。OpenSocial v0.9 で定義されるLightweight JavaScript APIもJS…

shindig の javascript

は、Java 版のバグなのか、PHP版のバグなのか、両方共通なのか、とかわからんがなと思いつつ、、ぶっちゃけshindigのプロジェクト自体がよく見えない & 見るつもりもあまりないので、メモ。gadget.js という、ガジェットコンテナ用のJavaScript、微妙にifram…

jQuery Plugin

jopensocial http://code.google.com/p/jopensocial/ opensocial-jquery http://plugins.jquery.com/project/opensocial-jquery OK。OpenSocial の実装は十分にありそうなので、この辺からもってくる。サーバーサイドの実装(REST API等)をそれにあわせるのが…

Apache Shindig / Java 版も動かしてみる

Sample Container はJavaの方が多いのかどうかよくわからないけれど、jettyで動かせば面倒な設定もいらなさそうな雰囲気だったので。http://incubator.apache.org/shindig/developers/java/build.html にやり方がいろいろ書いてあるが、手元のMac OS X(Java …

Mac OS X で Apache Shindig を動かす。

Mac OS Xでも環境によって違うと思いますが、以下参考までに*1。php5 用の設定を書く。 mac:php yssk22$ cat /etc/apache2/extra/httpd-php5.conf LoadModule php5_module libexec/apache2/libphp5.so <IfModule php5_module> AddType application/x-httpd-php .php AddType applic</ifmodule>…

RESTful Protocol Specification

これは割と簡単で、opensocial.* の DataRequest クラスに応答するためのRESTful APIのこと。Person,Activityなどのデータを提供するためのプロトコル仕様。ここまでかたまってんなら、WSDLでいいじゃねーか、というつっこみはなしで。みんなWSDL嫌いなんだ…

Gadget API

Gadgetとは、HTML,CSS,JavaScriptで構成されるソフトウェアで、GadgetはXMLによって定義される。Gadget XMLは、以下の要素を用いてGadgetを定義する。 Meadata : Gadget のタイトルや概要などを定義する Feature : Gadget が使用する機能を定義する。ここでO…

JavaScript API

opensocial.* 名前空間のたくさんのインターフェース(空のメソッド)が定義され、ドキュメント化されているので、それを実装する。例:http://opensocial-resources.googlecode.com/svn/spec/0.8/opensocial/person.js /** * Gets data for this person that …

OpenSocial を構成するもの

http://www.opensocial.org/page/specs-1 (のリンク先) 超要約。多少意訳(誤解?)しています。間違いがあったら教えてください。 OpenSocial はソーシャルアプリケーションのAPI の共通化が最終目標。 OpenSocial の実装サイトはOpenSocial Containerと呼ばれ…