--- layout: old_post title: MySpaceでOpenSocialアプリケーション OpenIDクライアント を試す ー (1) permalink: /tatsuya/show/417-myspace-opensocial-openid-1 ---

先々週、MySpace JapanのOpenSocialプラットフォーム対応が発表された

マイスペースが開発者向けプラットフォームを発表 - OpenSocialに完全準拠

ということで、久しぶりにOpenSocialを色々といじってみようと思う。何かネタが無いとやりづらいので「OpenSocial上で動くOpenIDクライアント(Relying Party)」というネタで試してみよう。

 

OpenSocial ver 0.7

OpenSocial自体については Ver 0.5 の頃Orkut上で試したので、今回はそれを振り返りつつ Ver 0.7 までで新しくなった部分をMySpace上で試してみる。

Ver 0.7変更点

・外部サイトへHTTPリクエストを投げるAPI追加(XML・JSON・Text・Feed(RSS or Atom?))

  http://code.google.com/apis/opensocial/docs/0.7/reference/gadgets.io.html#makeRequest

・取得可能なプロフィール情報の項目追加(性別・好きな音楽・本 等々)

  http://code.google.com/apis/opensocial/docs/0.7/reference/opensocial.Person.Field.html

・各アプリケーション毎のデータストレージ API 追加( 任意の key & value のペアでサーバへ保存される、アプリケーション + ユーザID + key でユニークとなる)

  http://code.google.com/apis/opensocial/docs/0.7/reference/opensocial.DataRequest.html#newUpdatePersonAppDataRequest

・Activityが実装されつつある?(「○○さんが××をしました」みたいな通知API)

  

・環境情報が追加(実行中の画面やドメインが取れる、ホーム画面・プロフィール画面・専用画面、orkut.com・myspace.com)

・ネームスペース変更多数(gadgets)

他色々と。

 

外部サイトへのHTTPリクエストを行う makeRequest API がなかなか使い所ありそうなので、これを今回は試す。あとデータストレージも試してみよう。

ということで、無理矢理っぽいけど「OpenIDへのログイン→ログイン履歴保存」という流れで実験。

ちなみに、外部HTTPリクエストを行う makeRequest APIの仕様は、プロクシを経由することでクロスドメインAjaxが可能、といった代物で以下のようにリクエストが飛ぶ

 クライアント > プロクシ(proxy.myspace.com等) > 外部サイト

意外に細かい部分で気が利いていて、任意のヘッダが設定可能 & 任意のメソッドが設定可能(GET/ POST / PUT / DELETE)

Basic認証や無理矢理やれば WSSE認証も多分できそう。AtomPubクライアント in OpenSocialなんてのも面白そう。

 

MySpace Developer Platform

OpenSocial仕様外の部分で、MySpace独自API(ユーザの投稿写真・ビデオ等)もあり、リファレンスはこちら

MySpace Developer Platform

この辺りも将来的にはOpenSocial APIとして足並みそろえていくのかな。

個人的に写真・ビデオ・音楽といった一般的な情報はOpenSocialに含めてOKじゃないかと思う。逆に、株取引SNSの「注目の銘柄」や競馬SNSの「最近買った馬券」なんてサービスのドメインにべったり寄った情報は独自APIという方向に進む、のかな。線引きが難しい。

また、MySpaceとOpenSocialの関係については

OpenSocialとかどうよ?的な勉強会(!?)に参加してきた - Tender Surrender

こちらが、アプリケーション互換性の問題からマネタイズまで、判りやすくまとめられているので参考に。

MySpaceデベロッパー登録 > アプリケーション作成

実際にMySpace上でアプリケーションを作成するには、デベロッパーとして登録する必要があるので登録。この辺り、登録から初めてのアプリケーション作成まで、こちらのサイトで分かり易くままとめられている

MySpaceアプリケーションを作ろう - ラーニング人生

この手順に従ってやれば簡単にできる、筈。

 

実装方針

・OpenIDの基本的な流れを実験する

  ・XRI や Yadis による探索は未実装

  ・関連付け(共有鍵の交換)は未実装

  ・OPから受け取った署名の照合も未実装・・

・処理フローはこんな感じで

  ・input (ユーザによるidentifierの入力)

  ・normalize(identifierの正規化)

  ・discovery(OP Endpoint URLの探索)

  ・association(共有鍵の交換)※未実装※

  ・authentication(認証リクエスト)

  ・response(認証結果のパース)

  ・verify(署名の確認)※未実装※

 

以上

それでは明日へ続く、次回は実装を