[CouchDB][OpenSocial][CouchApp] Shindig 動かして CouchDB でガジェットをホストとしてみた

こんな具合になりましたと。

/opensocial だけShindigに処理させて、他は全部CouchDBで処理。gadget.Container はShindigの使うかどうか迷ったけれど、とりあえず使うことにして、徐々になくしていこうと思う。

で、データは簡単で、例えばページとしてエントリ末の添付のようなJSONをDBにつっこんでおくだけで、Gadgetコンテナとして動作するようにできます。

まだガジェットの追加とかドラッグ&ドロップによる編集は実装していないけど、それほど大変ではなさそう。むしろ、以下の機能を実装することで、CouchDBのメリット出せるんじゃないのかなー。

  • Gadget 登録処理
  • OpenSocial の Persistent API (+ クエリを独自拡張)
  • サイト自体の複製機能

http://opensocialhost.com/ のもあるらしいので、OpenSocial Gadget データベースをホストする、というのはあながち間違ってはいなさそう。

問題は、認証はともかく、認可ができない子なんです。Relax しすぎて。

にしても、CSS、めんどくさいから jQuery UI の Theme をダウンロードして、ガジェットのclassに ui-widget-* を設定するようにしたら、一瞬で終わったよ!なんというか、Webの有名どころは同じ方向に向かって進んでいる感じがしていて、乗り遅れないようについて行くので必死であったりする。

{
   "_id": "pages:top",
   "_rev": "1-1145391075",
   "title": "Top Page",
   "type": "Page",
   "gadgets": {
       "top": [
           {
               "url": "http://webjourney.local/webjourney-development/_design/webjourney/gadgets/helloworld.xml",
               "title": "top0"
           }
       ],
       "bottom": [
           {
               "url": "http://webjourney.local/webjourney-development/_design/webjourney/gadgets/helloworld.xml",
               "title": "bottom0"
           }
       ],
       "left": [
           {
               "url": "http://webjourney.local/webjourney-development/_design/webjourney/gadgets/helloworld.xml",
               "title": "left0"
           }
       ],
       "right": [
           {
               "url": "http://webjourney.local/webjourney-development/_design/webjourney/gadgets/helloworld.xml",
               "title": "right0"
           }
       ],
       "center": [
           {
               "url": "http://webjourney.local/webjourney-development/_design/webjourney/gadgets/helloworld.xml",
               "title": "center0"
           },
           {
               "url": "http://webjourney.local/webjourney-development/_design/webjourney/gadgets/helloworld.xml",
               "title": "center1"
           },
           {
               "url": "http://webjourney.local/webjourney-development/_design/webjourney/gadgets/helloworld.xml",
               "title": "center2"
           }
       ]
   }
}