--- 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.5 の頃Orkut上で試したので、今回はそれを振り返りつつ Ver 0.7 までで新しくなった部分をMySpace上で試してみる。
・外部サイトへ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 でユニークとなる)
・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なんてのも面白そう。
OpenSocial仕様外の部分で、MySpace独自API(ユーザの投稿写真・ビデオ等)もあり、リファレンスはこちら
この辺りも将来的にはOpenSocial APIとして足並みそろえていくのかな。
個人的に写真・ビデオ・音楽といった一般的な情報はOpenSocialに含めてOKじゃないかと思う。逆に、株取引SNSの「注目の銘柄」や競馬SNSの「最近買った馬券」なんてサービスのドメインにべったり寄った情報は独自APIという方向に進む、のかな。線引きが難しい。
また、MySpaceとOpenSocialの関係については
OpenSocialとかどうよ?的な勉強会(!?)に参加してきた - Tender Surrender
こちらが、アプリケーション互換性の問題からマネタイズまで、判りやすくまとめられているので参考に。
実際にMySpace上でアプリケーションを作成するには、デベロッパーとして登録する必要があるので登録。この辺り、登録から初めてのアプリケーション作成まで、こちらのサイトで分かり易くままとめられている
この手順に従ってやれば簡単にできる、筈。
・OpenIDの基本的な流れを実験する
・XRI や Yadis による探索は未実装
・関連付け(共有鍵の交換)は未実装
・OPから受け取った署名の照合も未実装・・
・処理フローはこんな感じで
・input (ユーザによるidentifierの入力)
・normalize(identifierの正規化)
・discovery(OP Endpoint URLの探索)
・association(共有鍵の交換)※未実装※
・authentication(認証リクエスト)
・response(認証結果のパース)
・verify(署名の確認)※未実装※
それでは明日へ続く、次回は実装を