OpenSocialを利用してガジェットを作ろう!

第1回OpenSocialの世界へようこそ!

皆さんは普段mixiやgooホーム、MySpace、OpenPNEなど何らかのSNS(Social Network Service)を利用していますか? これらのSNSは、昨年から今年にかけて、大きな変革を遂げようとしています。今までのSNSは、運営者と利用者という2つのアクターのみが存在する世界でしたが、今後は一般の多くの開発者に関しても、SNSの世界に積極的に参加していくことができるようになります。その原動力となる規格こそが、OpenSocialです。

この連載では、Google API Expert ProgramにてOpenSocialを担当する北村英志、田中洋一郎が、具体的なOpenSocialアプリケーションの開発方法を皆さんにご紹介していきます。本連載の最終回を読み終える頃に、読者の方々が自らOpenSocialアプリケーションを開発できるようになっていることをゴールとしましょう。

ソーシャルグラフの可能性

今日のインターネットで利用頻度の高いサービスの中で、SNSが上位を占めるようになってきています。最近では、電子メールよりもSNSを利用している時間が長い、という調査結果が出たほど、SNSは一般に普及しています。

SNSは、利用する会員と、会員間の関係(ソーシャルグラフと呼びます)がコミュニケーションの原動力です。その関係の種類は様々であり、友達関係やビジネス上の付き合い、さらには同じ趣味・趣向といった会員の集まりに関しても、ソーシャルグラフを構成する要素ということができるでしょう。関係は共通の興味を生み出し、何らかのコンテンツとして形となります。それらを複数の会員間で共有することで、SNSの楽しさとなります。

今までは、SNSの利用者がソーシャルグラフを使ってコミュニケーションを行ってきました。しかし、ソーシャルグラフの可能性はそれだけではありません。近年では、"もっとソーシャルグラフを活用できないか?"といってことが考えられるようになりました。そして、開発者がソーシャルグラフを使って今までにない価値を形にすることができるのではないか、というチャレンジが行われるようになりました。

プラットフォームへの進化

その動きの一つとして、SNSの利用者に対して常に新鮮さを提供するために、多くの開発者にSNS上で動作する新しい機能を開発してもらい、それを多くの会員に利用してもらう、という試みがされるようになりました。つまり、SNSがプラットフォームへ成長を遂げ始めた、ということです。例えば、SNSが提供するWebページに小さなアプリケーション(これをガジェットと呼びます)を貼り付けたり、ソーシャルグラフを公開したり、といったことが行われています。

そして、例えば登録されるガジェットの数が多くなればなるほど、利用者は次々と新しい楽しみを得ることになります。それらのガジェットによって、文字情報だけではなく、様々なコンテンツが生み出されます図1⁠。SNSの利用者にとって、次々と登場するガジェットは魅力的であり、常に新鮮な気持ちを保つことが可能となります。

図1 複数のガジェットで飾られたプロフィールページ(MySpace)
図1 複数のガジェットで飾られたプロフィールページ(MySpace)

さらに、SNSの最大の特徴であるバイラル効果(コンテンツが口コミで広がるための環境)により、開発者が登録したガジェットは、ソーシャルグラフに従って広く利用されていきます。Webという不特定多数のユーザを狙うことよりも、SNSという特定多数のユーザを狙うことのほうが、開発者にとって魅力的に感じるはずです。

SNS上で動作するガジェットは、ソーシャルグラフを取得し、それを活用することができるようになります。つまり、友達に何かリコメンドしたり、会員間で情報の共有をするようなガジェットを開発することができるのです。

そして、SNSのプラットフォーム化によって、運営者、利用者、そして開発者という新しい関係が登場することになります図2⁠。開発者にとっては、新しいビジネスチャンスの到来です。

図2 プラットフォームを取り巻く関係者
図2 プラットフォームを取り巻く関係者

開発者の自由とは

このような新しい関係によるサービスの活性化を図るために、多くのSNSがプラットフォーム化を遂げようと考えるでしょう。しかし、ここで大きな問題が発生します。それは、APIの互換性です。

例えば、あるSNSがプラットフォーム化を行い、APIを開発者に提供したとします。開発者はそのAPIを使ってガジェットを開発し、そのSNSの会員に利用してもらいます。では、別のSNSがプラットフォーム化を行う際に、そのAPIがそれぞれ異なるものとすると、開発者は困ってしまうことでしょう図3⁠。つまり、別のSNS向けにガジェットのコードを書き直す作業、つまり移植作業が必要になってしまいます。

図3 APIの非互換
図3 APIの非互換

次々とSNSが独自にAPIを策定していってしまうと、開発者の自由は徐々になくなっていってしまうことになります。

共通規格 - OpenSocialの登場

このような互換性問題などを解決するために立ち上がったのは、どのSNSでもない、Googleでした。Googleは2007年10月末、OpenSocialを発表しました。MySpaceやFriendstar、Plaxoなどの主要なSNS陣営や、Salesforce.comやOracleなどのエンタープライズ向けサービス提供陣営など、多くの賛同や参加を得ることに成功しています。

OpenSocialは、ソーシャルなアプリケーションを開発するための共通規格です。SNSがOpenSocialに対応することで、あるガジェットは多くのSNSでそのまま動作することになります図4⁠。つまり、開発者は特別な移植作業をすることなく、OpenSocial対応SNSにガジェットを自由に登録し利用してもらうことができるようになるのです。

図4 OpenSocialによる共通規格
OpenSocialによる共通規格

OpenSocialでは、以下の3つの仕様が、その目的ごとに策定されています。開発者が主に使用するのは、JavaScript APIおよびRESTful Protocolのどちらかになります図5⁠。

  • JavaScript API:SNSの画面に埋め込まれて実行されるガジェットの開発向け
  • RESTful Protocol:任意の場所からSNSが持つ情報にアクセスするためのAPI
  • RPC Protocol:バッチ処理をサポートしたJSON-RPC形式によるSNSコンテナ実装向けのAPI
図5 JavaScript APIとRESTful Protocol
図5 JavaScript APIとRESTful Protocol

これらのAPIを使うことによって、開発者はソーシャルなアプリケーションを開発することができるようになります。例えば、JavaScript APIによって提供される機能を、表1に示します。これからわかるように、ガジェットにソーシャル性を持たせるための非常に面白い機能がそろっています。開発者にとっては、どれも珍しい機能であるという印象を受けるのではないでしょうか。

表1 JavaScript APIにて提供される主な機能
種類 説明
Person & Friends API 会員情報の取得や、友達関係などの取得
Activities API アクティビティの作成や公開
Persistence API 情報の永続化や共有
requestShareApp 他の会員にアプリケーションを勧めるための機能
requestSendMessage 他の会員にメッセージを送信
gadgets.io.makeRequest 外部サービスとの通信

まとめ

今回は、OpenSocialが登場するに至った背景と、OpenSocialの簡単な紹介をしました。次回からは、JavaScript APIを具体的に使ったガジェットの開発について、解説を行っていきます。OpenSocialの特色を生かした題材を取り上げ、それを構成するコードに関して各APIごとに説明をしていくことにしましょう。

OpenSocialによるガジェットの開発は「どのSNSを使って動作確認を行うか」という点が非常に重要です。本連載では、日本初のOpenSocial対応SNSとなるgooホームを使って、実際に題材が動作することを確認した上で解説を行っていく予定です。

おすすめ記事

記事・ニュース一覧