Twitter@Anywhereのログイン状態を取得する方法2つ
Twitter公式リファレンスに出てる認証サンプルはRubyしかなかったので、PHPでのサンプルを載せておきます。
面倒くさいPEARのライブラリやらOAuthやらより、簡単に認証できるんですねー。
もちろんセキュリティ面でもう少し気をつけるべき点はあるものの、基本的にはコレでログイン状態が取れます。
PHPでのログイン判定
認証用の関数
if(!function_exists('isVerified')){
function isVerified(){
$consumer_secret = '自分で取得したConsumer Secret';
$twitter_anywhere_identity = explode(':', $_COOKIE['twitter_anywhere_identity']);
if (sha1($twitter_anywhere_identity[0] . $consumer_secret) === $twitter_anywhere_identity[1]) {
return true;
} else {
return false;
}
}
}
$_COOKIE['twitter_anywhere_identity']を覗くと、999999:abcdefghijklmnopqrstuvwxyzみたくなってます。
":"の前とConsumer Secretをsha1に通したものと、":"の後が同じであればご本人さまというわけですね。
使用例
if(isVerified()){
echo'Verified!';
}else{
echo'Not verified.';
};
WordPressでやる場合は、functions.phpに関数を書いて、他のテンプレートで使用します。
JavaScriptでのログイン判定
isConnected()
var myTw;
twttr.anywhere(function(tw){
myTw = tw;
if (myTw.isConnected()) {
// Connected!
}else{
// Not connected.
}
});
これはリファレンスにも載ってるやつですね。
つかいみちとして
基本的にPHPでOAuthのロジックとか書けるなら、それにこしたことはないのかなーとも思います。
ただ、認証はJavaScriptで!っていうこだわりがある場合は以上2つを併用することで、幾分か強固な仕組みになるんじゃないでしょうか。
ちなみに私が今回作ろうとしてるのは、このやり方でデータをこねこねしてます。
Ajaxとか、JavaScript経由でデータ取得してページ構成する・・っていうシーンだと、PHPより使い勝手は良いかもです。