twitter API を使った簡易認証とこっそり認証
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
コメントする