クロスサイトでtwitterのプロフィール情報にアクセス! TOWRAP!×XAuth

※注意
本エントリで扱うXAuthとは、twitterがBasic 認証から移行させようとしているしくみの話ではありません。

もともとtwitter OAuthをOAuth WRAPの形式で使えるようにしたくて作ったTOWRAP!を、今度はXAuthと組み合わせてみました。

作った機能は以下の二つです。

  • ブラウザ単位でTOWRAP!がXAuth Tokenを発行
  • XAuth Tokenからそのユーザーのプロフィール情報にアクセス可能なAPIを提供

■ XAuth Token発行

URL : http://r-weblife.sakura.ne.jp/towrap/xauth

  • TOWRAP!にログインしてないときはtwitterのOAuthのフローに行ってください
  • あとは、認証状態の共有(=XAuth Token発行)だけです

IEでは動作確認してません

■ XAuth Token→Profile

デモページ : http://r-weblife.sakura.ne.jp/xauth/towrap_xauth_retriever.html

やってることはこれだけ。

  • XAuth TokenをRetrieve
  • Profile取得APIにアクセス

これ、Cookie使ってないのでr-weblife.sakura.ne.jpではないサイトにおいても使えるはずです。
Y!ジオシティーズ上に同じhtml置いたものはこちら。

デモページ2 : http://www.geocities.jp/r_weblife/xauth/towrap_xauth_retriever.html

同じ挙動すること確認できますよね?
ってことは、meeboのデモページに並べてくれても・・・。

■ まとめ

XAuthの使いどころである、"Cookieによるドメイン単位の認可状態保持ではなく、クロスサイトで認証情報にアクセスできる"しくみを実装してみました。
気になったのがこれぐらいです。

  • XAuth TokenはXAuth.orgのjsを通して保存しているわけなので、XAuth.orgが悪いことしたり、DNSが毒されればちょっと怖いかも
  • XAuth TokenはXAuth.orgのjsを通さないと取得できないので、サーバサイドスクリプトとの連携はちょっとかんがえなければならないっすね。

■ おまけ

使ってくれる人がいれば、機能拡張も検討したいと思っています。
裏でtwitter APIをたたくjsonpAPIを作るのは簡単。なので、あとは誰かに使いやすいjsを書いていただければ、アプリケーション登録なしで使える@anywhereみたいなこともできますねっ。
これで、TOWRAP!のユーザー数が夢の2桁(現在9人)になってくれると願っています。

みなさん、Facebookのグラフの話とかヤフーとモバゲーのヤバゲーな話も気になるのはわかりますが、少しはXAuthの話も気に留めておいてくださいね。