読者です 読者をやめる 読者になる 読者になる

console.lealog();

@leader22のWeb系に関する勉強めもブログですのだ

Twitter@Anywhereのログイン状態を取得する方法2つ

PHP Twitter JavaScript

参考:最新のTwitter@Anywhere公式ドキュメントの日本語訳

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より使い勝手は良いかもです。