いつものやつ少しだけ改良(?)した
login.php
<?php session_start(); require_once("./lib/twitteroauth.php"); require_once("./lib/setting.php"); //セッションのアクセストークンのチェック if( !isset( $_SESSION['oauthToken'] ) ){ //OAuthオブジェクト生成 $oOauth = new TwitterOAuth( $consumer_key, $consumer_secret ); //callback url を指定して request tokenを取得 $oOauthToken = $oOauth->getRequestToken( $callBackUrl ); //セッション格納 $_SESSION[ 'requestToken' ] = $sToken = $oOauthToken[ 'oauth_token' ]; $_SESSION[ 'requestTokenSecret' ] = $oOauthToken[ 'oauth_token_secret' ]; //Authorize url を取得 $sUrl = $oOauth->getAuthorizeURL( $sToken ); echo '<a href="' . $sUrl . '">ログイン</a>'; }else{ $userId = $_SESSION['userId']; $screenName = $_SESSION['screenName']; $access_token = $_SESSION['oauthToken']; $access_token_secret = $_SESSION['oauthTokenSecret']; $to = new TwitterOAuth($consumer_key, $consumer_secret, $access_token, $access_token_secret); echo 'ユーザーID:' . $userId . '<br />'; echo 'スクリーンネーム:' . $screenName . '<br />'; echo '<a href="./logout.php">ログアウト</a>'; } ?>
logout.php
<?php session_start(); require_once("./lib/twitteroauth.php"); //require_once("./lib/setting.php"); //URLパラメータからoauth_verifierを取得 if(isset($_GET['oauth_verifier']) && $_GET['oauth_verifier'] != ''){ $sVerifier = $_GET['oauth_verifier']; }else{ echo 'oauth_verifier error'; exit; } //リクエストトークンでOAuthオブジェクト生成 $oOauth = new TwitterOAuth($consumer_key,$consumer_secret,$_SESSION['requestToken'],$_SESSION['requestTokenSecret']); //oauth_verifierを使ってAccess tokenを取得 $oAccessToken = $oOauth->getAccessToken($sVerifier); //取得した値をSESSIONに格納 $_SESSION['oauthToken'] = $oAccessToken['oauth_token']; $_SESSION['oauthTokenSecret'] = $oAccessToken['oauth_token_secret']; $_SESSION['userId'] = $oAccessToken['user_id']; $_SESSION['screenName'] = $oAccessToken['screen_name']; //loginページへリダイレクト header("Location: ./login.php"); ?>
callback.php
<?php session_start(); require_once("./lib/twitteroauth.php"); //require_once("./lib/setting.php"); //URLパラメータからoauth_verifierを取得 if(isset($_GET['oauth_verifier']) && $_GET['oauth_verifier'] != ''){ $sVerifier = $_GET['oauth_verifier']; }else{ echo 'oauth_verifier error'; exit; } //リクエストトークンでOAuthオブジェクト生成 $oOauth = new TwitterOAuth($consumer_key,$consumer_secret,$_SESSION['requestToken'],$_SESSION['requestTokenSecret']); //oauth_verifierを使ってAccess tokenを取得 $oAccessToken = $oOauth->getAccessToken($sVerifier); //取得した値をSESSIONに格納 $_SESSION['oauthToken'] = $oAccessToken['oauth_token']; $_SESSION['oauthTokenSecret'] = $oAccessToken['oauth_token_secret']; $_SESSION['userId'] = $oAccessToken['user_id']; $_SESSION['screenName'] = $oAccessToken['screen_name']; //loginページへリダイレクト header("Location: ./login.php"); ?>
./lib/setting.php
<?php $consumer_key = "*************************"; $consumer_secret = "***************************************"; $callBackUrl = "http://" . $_SERVER["HTTP_HOST"] . dirname($_SERVER["SCRIPT_NAME"]) . "/callback.php"; ?>