OpenIDのRPとOAuth/OpenSocialの関係について

idconのときに少し言われたことを持ち帰って考えました。
idcon #6 雑感 - OpenID / OAuth / OpenSocial がこう使えたらいいのに - 京の路

このブログでも何度かHybridの話をしています。
Hybridを使うことでOpenIDのRPが、OAuthでアクティビティストリームAPIやコンタクトリストを使っていろんなことができます!
ってのを言いかえると"ProviderがOpenIDのRPにOAuthを使わせる"しくみです。

■ Providerが使わせたいソーシャルグラフ

当たり前ですが、Providerはボランティアでデータを出しているわけではありません。
Consumerに使われることによるProviderのサービスの価値向上、新たなトラヒック開拓が狙いだったりします。

現状、APIとしてConsumerに提供されている"人のつながり"

  • SNSのFriendリストを渡す(key = SP内のユーザー識別子)
  • アドレスブックの中身を渡す(key = メアド)

使いどころ

  • OpenSocial Gadgetのinviteみたいに自分の友達にConsumerサービスを紹介。まぁそんなAPIがあればですが。
  • メアドリストにinviteメール送信。いろんなところでアドレスブックが使える=メールサービスの価値向上。Gmailとかこんな感じかも。

■ Consumerが使いたいソーシャルグラフ

次に、Consumer視点で、OpenIDとAXなどでとれる属性以外のものをOAuthで使えるとしたら、何が必要でしょうか?

Contact リストを Email じゃなくて OpenID で取れればいいのに

idcon #6 雑感 - OpenID / OAuth / OpenSocial がこう使えたらいいのに - 京の路

OpenSocial Container の User ID が OpenID だったらいいのに

idcon #6 雑感 - OpenID / OAuth / OpenSocial がこう使えたらいいのに - 京の路

ConsumerというかOpenIDのRPとユーザー識別子

  • ユーザー識別子はOpenIDである(というか自らの識別子とOpenIDが紐づいている)
  • smart.fmのようなソーシャル性を持ったRPは、OpenIDを用いたグローバルなソーシャルグラフを持っている

novさんがおっしゃられているように、SNSのフレンド一覧がOpenIDのリストとして渡されると、
以下のようなやりかたでConsumer上のグラフともらったグラフを有効利用できそうです。

  • フレンドリストのOpenIDを使ってConsumer内

OpenIDのマッチングを行い、本人に「あなたの友達は既に(Consumer)を使っています。(Consumer)上でもつながりましょう!」と通知

  • フレンドリストに含まれていた別のユーザーに対して「あなたの友達が(Consumer)を使い始めました!」と通知

■ 現実

上で説明したProvider/Consumerの考えの違いから、以下のような課題が。

  • Provider内のユーザー識別子のリストもらっても、今持っているOpenIDとうまく絡められない

mixi ID なんて送ってきて、僕らにどうしろと言うのさ!

idcon #6 雑感 - OpenID / OAuth / OpenSocial がこう使えたらいいのに - 京の路
  • emailリスト取得してメール送ってもスパム扱いされておわり

Google / Yahoo! Inc. の Contact API、正直友達の Email アドレスとかもらっても、スパムまがいの招待状送るくらいでどうせみんな登録しないんじゃない?

idcon #6 雑感 - OpenID / OAuth / OpenSocial がこう使えたらいいのに - 京の路
  • emailリストはセンシティブで日本では出てこない

そして Email じゃなければ、Y! Japan さんも対応しやすい、かも?

idcon #6 雑感 - OpenID / OAuth / OpenSocial がこう使えたらいいのに - 京の路

ごもっとも。

■ まとめ?

せっかくOpenIDで"ユーザーセントリック"なのに、Hybridを使うことで"ベンダーセントリック"に戻ってしまったら残念。
ただ、こういう話になっちゃうから〜、OpenIDとOAuthって違うんですよね〜。めんどくさいっすよね〜。
なんて言ってちゃいけない。

今回のように、Consumerが本当に必要なものってなんだろうって考えることも必要。
実装なんてどうにでもなるでしょ。