Tender Surrender

DataPortabilityを実現するData AvailabilityやFacebook Connect、FriendConnectの技術が公表されて半年が経ちますが、ようやくこれらを実際に使ったサービスが登場してきました。

これまでのFacebookやOpenSocialにおけるガジェットや埋め込み型アプリケーションは、中心となるソーシャルネットワークに外部サービスが機能を提供する形でプラグインするものばかりでした。Data AvailabilityやFacebook Connectは逆に、RESTful API等を活用して外部サービスにソーシャルネットワークをエキスポートします。今日はCitysearchというサービスで実現されたFacebook Connectを例に、これからのソーシャルウェブの具体的なカタチを紹介したいと思います。

CitysearchがFacebook Connectにβ対応

僕の知る限り、これが初のまともなFacebook Connect対応 / DataPortability対応のサービスです。

Citysearchは、レストランやホテル等、実際に利用した人がレビューを書いて共有するタイプのソーシャルネットワークです。

よく見ると画面右上に”Sign In Using Facebook”の文字があります。

早速クリックしてログインを試みます。

認証

Lightbox風のダイアログがポップアップして、Facebookアカウントを使ってサインインしても良いかの確認が。

ここで重要なのは

  • Citysearchのロゴが入っている。つまり、FacebookとCitysearchの間には、自動化されているにしろ、事前に何かしらのやりとりがあったことが伺える。
  • このダイアログはiframeです。僕の場合は既にFacebookにログイン状態だったので確認しか表示されませんでしたが、ログインしていない場合は(フィッシング対策として)別ウィンドウがポップアップしてFacebookのIDとパスワードを求めるようです。
  • 利用規約に同意する必要があります。地味ながら、日本での法的なハードルも今後課題になるとは思われます。

サービス登録

コネクトすると、未登録のためメンバー名を求められます。既存アカウントが無い人のために用意されているようです。ここでもいくつかポイントがあります。

  • Facebookの認証は独自方式ですが、これがオープン仕様ならOAuth/OpenIDのコンボになると考えられます。つまり、Facebookの独自方式では認証と認可が同時に行われているようです。
  • この後分かりますが、できあがったアカウントにはFacebookのプロフィール写真、名前、友達リストが少なくともインポートされています。オープン仕様であればOpenIDでsregを使ってニックネームとプロフィール写真を、OAuthで友達リストをインポートすることになるのでしょうか。OAuthだけでもいいかもしれません。
  • “Merge your Facebook profile with an existing Citysearch account?”というリンクが用意されています。既存アカウントとOpenIDをマージできるサービスが少ない事を考えると、なかなか気が利いています。
  • ここではCitysearch自体の利用規約に同意させているようです。

コネクト完了

ログインしてみると、画面右上に自分のFacebookプロフィールの写真が表示されています。

マイページには自分の名前とプロフィール写真しか掲載されていません。他にエキスポートされる情報があるかは未調査です。

ここが最大のミソになる、友達リストです。残念ながら”None of your Facebook friends are Citysearch members”とあるように、両方に登録しているFacebook friendsしか友達として表示されないようです。ここで未登録の友達も表示して、”Citysearchに招待する”なんて機能があってもいい気がします。

フィードバックとなるアクティビティ

さて、ここまで見てきたものはすべてCitysearch上の画面でした。Facebookは自身が持つデータを提供するばかりで、考えてみればいいことなど何ひとつないように見えます。広告を貼る方法だって見つけられません。では、なぜ惜しげもなくソーシャルグラフを提供するのでしょうか?

実は、Facebook ConnectはアクティビティをFacebookにフィードバックする仕組みを持っており、これによってFacebookはコネクトされたサービスのアグリゲータになれるからなのです。下記画像の「掲示板に記事を掲載」とあるのがこの部分です。OpenSocialで言えばアクティビティストリームがこれに当たります。

実際の画面イメージを掲載したいところですが、Citysearchにレビューを書く勇気がないのでJohn McCrea氏のサンプルにリンクしておきます。

アクティビティのアグリゲータになることは、トラフィックを集める上で非常に重要な戦略です。Facebookにさえ来れば、友達が関わる様々なサービス上の活動を一目で確認することができるのです。今まで知らなかったサービスも、友達を介して知ることができます。さらに、集めたアクティビティにはこんな利用法もあり、様々なマネタイズの可能性も秘めていると言えます。

参考サイト

Read on...

iGoogleはこれまで複数のガジェットを1ページに表示するスタイルでしたが、最近「canvasビュー」が追加され、1つのガジェットを画面いっぱいに表示して利用できるようになったことは記憶に新しいと思います。canvasビューを使うことで、特にGmailやGoogle Readerのガジェットでは、単体サービスのかなりの機能がガジェット上でそのまま利用できるようになり、大幅に利便性が向上しました。

このiGoogleの変化は、既に明言されてはいますが、iGoogleのOpenSocial対応を予感させ、将来的にGoogle全体がソーシャルネットワークになっていくことを示唆しています。実は既にGoogleがそれ自体をソーシャルネットワーク化していく方向性は随所に見られます。

Googleのソーシャル化

Gmail連絡先(コンタクトリスト)

ソーシャルネットワークを形作る上で最も重要になるソーシャルグラフを、GoogleはGmail/Google Talkに持ってきました。当然と言えば当然。この連絡先(コンタクトリスト)はAndroidケータイ上にもインポートされ、電話帳としても利用されており、いやでもリアルなソーシャルグラフになる点が特徴と言えます。

Google Mapsプロフィール

最近プライバシー問題で話題のGoogle Mapsには実はプロフィール機能がついており、画面上部の「プロフィール」リンクをクリックすると、自分のプロフィールを作成/表示することができます。これは後述のGoogleプロフィールと連携しています。

Google Readerの共有機能

Google ReaderはRSSリーダーですが、気になった記事をボタン一つで友達に共有できる機能があります。その際利用されるのがGmailの持つ連絡先のソーシャルグラフで、ここでも活用されています。

Googleプロフィール

いつのまにか、ひっそりと作られた感のあるのがGoogleプロフィールこれが今後どう充実して行くかは要注目です。

画面左上にユーザーの写真とニックネーム、住所が表示され、その下にはプロフィールの詳細情報が表示されます。今のところ住所や過去に住んだことのある場所、通った学校、勤めた会社、略歴に加え、Googleを使っても見つけられないもの、超能力(?)など一風変わった項目もあり、この画面から編集を行うことができます。

そして「リンク」。今のところ本当にただのリンクですが、利用している外部サービスを登録することができます。面白いのは、例えばFriendFeedを登録すると、自動的に他のサービスも登録候補にずらずらっと表示されるところ。なるほど、ここでGoogle Social Graph APIを活用しているようです。確かに、FriendFeedにはrel=”me”といったmicroformatが埋め込まれています。

メッセージ機能

Googleプロフィールに最近メッセージ機能が追加されました。英語版でしか存在を確認することはできませんが、プロフィールページからメッセージを送ることができるようです。これもOpenSocial対応を意識したものでしょう。

Googleは今後どう変わって行くのか

Googleがソーシャル化していく上で、今後どのような部分に変化が見られるのか予想してみました。

Googleプロフィールにガジェット

まず間違いなく、Googleプロフィールにもガジェットが追加できるようになるでしょう。

OpenSocialにはhomeビュー、canvasビュー、profileビュー、previewビューの4つがあらかじめ定義されていますが、ガジェット追加確認用のpreviewビューを除けば、一般的なSNSにおけるマイページ(homeビュー)、ガジェットのみを表示するcanvasビューが既にiGoogleで用意されているので、残りはプロフィールページ(profileビュー)となるのは自然な流れと言えます。

GoogleプロフィールのiGoogle統合

GoogleプロフィールとiGoogleの統合はあり得ない話ではありません。今もiGoogleのSandbox環境では自分のGoogleプロフィールの内容を確認することができますが、例えば簡単に画面遷移ができたりすることで、他者との距離を近づけ、iGoogleがソーシャルなものであることを意識できるようになるかもしれません。

アクティビティストリーム

iGoogleのSandboxでは既に片鱗が見えますが、OpenSocialのアクティビティストリームという機能がもう少し明確に、姿を現すはずです。アクティビティストリームとは、ユーザーの行動履歴のようなもので、mixiで言えば友達の日記やコミュニティの最新情報に当たります。

OpenSocialではガジェットからアクティビティを登録する機能が規定されていますが、iGoogleではこれに加えてリンクしたサービスのフィードも自動的に混ざる、FriendFeedライクな機能を追加してくるのではないでしょうか。MicrosoftがWindows Live Homeで追加した機能にも同様のものがあります。

まとめ

Googleプロフィールをネタに記事を書き始めたのですが、なんだかんだ話が広がり、結構大きい話になってしまいました。しかしGmailを中心として着実に、潜在的にソーシャルグラフを広げているGoogleが、完全なソーシャルネットワークの形態をとった時にどれほどの影響力を持ったものになるのか、正直想像もつきません。果たしてGmailを作った時点でここまで考えていたのか?今後の動向から目が離せません。

Read on...

本日米Yahoo!から、Yahoo! Open Strategy 1.0として、ディベロッパ向けにYahoo! Application Platform (YAP)Yahoo! Social Platform (YSP), Yahoo! Query Language (YQL)リリースされました。

Yahoo! Social Platform

プロフィールやアドレス帳、更新情報等、ソーシャルにまつわるAPIをRESTベースで提供するものです。認証機構にはOAuthを利用し、PHP版、Flash版のライブラリも提供されていますが、このREST APIはOpenSocial互換ではありません。

Yahoo! Query Language

SQLライクなコマンドを送信する事でYahoo! Pipesのようにデータ取得が可能なウェブベースのAPI。FacebookのFQLのようなもののようです。

Yahoo! Application Platform

Yahoo!上で動作する埋め込み型のアプリケーション。OpenSocialのガジェットプラットフォームは現時点ではサポートされていませんが、JavaScript APIは使えるようです。大きく2つのビューがあります。

Small View

HTMLまたはYML Liteのみサポート。JavaScriptはサポートされていません。YMLは、Facebookで言うところのFBMLのようなもので、 My!Yahoo等様々なページにパーツとして表示する事が想定されています。

Canvas View

**ディベロッパが指定したURLが出力したYMLをプロキシして表示するタイプのアプリケーション。Facebookライクな仕組みですね。もちろん、サーバーサイドでYahoo! Social Platformを使ったプログラムを書く事で、OAuthで認証を行い、RESTベースでソーシャルグラフを取得したり、コンタクトリストを取得したりすることできます。

また、OpenSocial JavaScript API(v0.8)にも対応しているので、クライアントサイドから更新情報を追加するといった利用も可能な様子。Cajaが利用されているので、セキュリティに気遣う事なく実装できそうです。(いつのまに実用レベルに達していたのでしょうか・・・)

時間のある時にでもサンプルアプリケーションを作ってみたいと思います。

所感

今回のYahoo!のリリースは、FacebookプラットフォームとOpenSocialのいいとこ取りといった感じ。ただし、OpenSocialに完全に準拠している訳ではないので、他で作ったアプリケーションをちょっとだけ書き換えて転用、という訳には行かなそうです。

例えば、クライアントからmakeRequestを使って外部サーバーのデータを取得するようなJavaScript APIは利用する事ができません。また、OpenSocialならHTMLを出力すればよかったものが、YMLを出力しなければなりません。等々・・(追記:Gadgets Core APIは利用できるようです。ただし、Pref、Viewなど、featureで指定する機能は利用できません。また、YMLは通常のHTMLに加え、独自タグを使って拡張した機能が使える、というもののようです。ただ、Caja対応のために外部スクリプトを読み込めないことが、他のコンテナに実装したガジェットをインポートする際の障壁になりそうです。)

ただ、世界最大のポータルサイトがOpenSocialに対応することの意義は大きく、今後の動きは要注目です。全体の戦略からすれば、OpenSocialの対応はあくまでパーツに過ぎず、今後のウェブのあり方を位置づける重要な意味を持ちます。先日行われたYahoo! Open Hack Dayのプレゼンテーションは必見です。

どんどんプラットフォーム化していくウェブと、その中で占めるソーシャル機能の持つ重要性が、日本でも認識される日はそう遠くないと思います。

Read on...

OpenSocial-Japanのメーリングリストで出した小ネタを貼っておきます。

OpenSocialアプリ(ガジェット)はiframe内に表示されているのですが、iframeタグのsrc属性に含まれるURLのquery部分に、実はソースコードとなるXMLのURLが書いてあります。 このブックマークレットを使えば、ワンクリックでソースコードを開くことができます。

Open Orkut Gadget XML

↑上記をブックマークレットとして保存し、Orkutアプリを表示した状態でクリックすると、ソースコードのページが新規ウィンドウで開きます。 (複数表示されている場合は、一番上のアプリのソースコードが開きます)

※Firefoxでしか動作確認してないので、動かなかったら教えてください。

Read on...