2007年11月5日月曜日

OpenSocial を紐解く


日本では mixi 、海の向こうでは Facebook と、Social Networking はまさにピークを迎えているようにも思える。
一方で開発者視点で見ると発展の余地があり、Google を中心とした OpenSocial という API 群が公開された。

OpenSocial とは何か


OpenSocial について、Google code で公開されている OpenSocial のドキュメント を見ていく。API 群の見出しは以下である。
The web is better when it's social.

これを踏まえて、ドキュメントを読んでいく。

The web is more interesting when you can build apps that easily interact with your friends and colleagues. But with the trend towards more social applications also comes a growing list of site-specific APIs that developers must learn.

Social な WebAPP により、Web の世界はますます面白くなる。
一方で、この流れにより、開発者は API の仕様を Web APP ごとに覚え、APP を作成しなければならない。

そこで、Social Networking な Web APP に公開される API の仕様を OpenSocial として標準化していくことで、開発者の負担を減少させることができる、ということだ。

OpenSocial provides a common set of APIs for social applications across multiple websites. With standard JavaScript and HTML, developers can create apps that access a social network's friends and update feeds.

この文章からOpenSocial は以下のようなものであることが分かる。
  • ソーシャルネットワークそのものではない。
  • Javascript と html により、開発者にソーシャルネットワークにおける中心的な機能、及び中心的な情報へのアクセスを提供する汎用的な API 群 (Common set of APIs) である。
OpenSocial の特徴として前出のページで列挙されている特徴は以下の 2 つである。
  • Many sites, one API
  • Server Optional
    • OpenSocial は Google Gadget の技術を使用しており、開発されたサードパーティ制の APP を Google を始め、好きなサーバにホスティングさせることができる。

OpenSocial が提供する API


OpenSocial API Documentation によると、OpenSocial の API群を使うにあたり、
  • Client-side で javascript を用いる方法
  • Server-side で Rest スタイルの dataAPIs を用いる方法
の 2種類の方法がある。
Client-side: Javascript による API
以下の情報にアクセスできる。
  1. プロフィール情報 (user data)
  2. 友達情報 (social graph)
  3. 活動 (things that happen, News Feed type stuff)
OpenSocial のトップページで利用されている上図は、SNS 空間から、上記の情報を API により抽出しているイメージだと思われる。
Server-side: Atom Pub (GData API) を用いたリソースの操作
Server Side では以下の 3 つの API が定義されている。
  1. The People and Friends data API

    • クライアント APP は Atom Pub または GData APIs を使い、プロフィールや友人関係の閲覧・編集ができる。

  2. The Activities data API

    • クライアント APP は Atom Pub または GData APIs を使い、"action" を閲覧、発行できる.
    • ここでいう "action" とは例えばユーザがいつコンテンツをアップロードしたか、とか作成したか、といった情報のことである。

  3. The Persistence data API

    • クライアント APP はクライアント APP 特有の key, value の組み合わせを閲覧、発行できる

※本記事は以下を参考にしています。
OpenSocial - Google Code
Google Announces the OpenSocial API
たけまる / OpenSocial Protocol

上記以外の関連リンクは以下にまとめてみました。
Haida's clips OpenSocial