twitter API を使った簡易認証とこっそり認証

| | コメント(0) | トラックバック(0)

twitter API を使った簡易認証

[観] Twitter API 仕様書 (勝手に日本語訳シリーズ)を参考に、twitter API を使った簡易ログインを作ってみた。

これを使うと、twitter アカウント情報を求めることなく、
twitter アカウント情報を取得できる。


JSONP の処理には jsr_class.js を使った。



var req = 'http://twitter.com/statuses/friends_timeline.json?callback=login';
var bObj = new JSONscriptRequest(req);
bObj.buildScriptTag();
bObj.addScriptTag();

function login(jsonData) {
var req = 'http://twitter.com/statuses/user_timeline.json?callback=getUser';
var bObj = new JSONscriptRequest(req);
bObj.buildScriptTag();
bObj.addScriptTag();
}
function getUser(jsonData) {
var user = jsonData[0].user;
var text = user.name + "さん、こんにちは。"
document.getElementById('result').innerHTML = text;
}


実行サンプル

わざわざ API を2回呼び出してる理由は後述。


このブラウザで twitter にログイン済みだとそのままユーザ名が表示され、
未ログインの場合はtwitter アカウントによる BASIC認証を求められる。
user_timeline を読みに行ってるので、自分の post が1回もないユーザではちゃんと動作しないはず。

このままではちゃんとした認証には使えないと思う。
twitter クローンを作ったけど、自分のサイトで twitter のパスワードの入力を求めるのはちょっとなあ。
って時には使えるかもしれない。
それ以外に用途が思い浮かばない。


あと、同意を求めた上でやらないと倫理的に問題がある気がする。

twitter API を使ったこっそり認証

これは認証ですらない。

上記のサンプルで API を2回呼び出してるのには理由がある。

user_timeline の API はなぜか BASIC 認証を求めてくれないのだ。(2007.11.21 時点)
twitter に未ログインの状態で以下 URL を開くと、
http://twitter.com/statuses/user_timeline.xml

こんな状態になる。


-
Authentication required to request your own timeline.
/statuses/user_timeline.xml

これを利用したこっそり認証のサンプル

結果的には簡易認証と変わらないんだけど、
こっちだと、twitter にログインしてる人のアカウント情報を
twitter に未ログインの場合でも、何やってるか悟られることなく(なくはないけど、わかりにくく)取得することができる。


これはキモイ。
どちらの方法にせよ、 twiiter に関係のないサイトで twitter のアカウント情報を取得できちゃうわけで、
これは考えれば考えるほどキモイ気がする。

トラックバック(0)

このブログ記事を参照しているブログ一覧: twitter API を使った簡易認証とこっそり認証

このブログ記事に対するトラックバックURL: http://pm.11op.net/mt/mt-tb.cgi/91

コメントする