私はユーザー ID を保存し、$_SESSION['uid']
ユーザーが自分のアカウント設定をブラウズできるユーザー システムを持っていますが、最近、Twitter アカウントをリンクする機能を追加しました...ここが変なところです。
次のようなTwitterリクエストページがあります。
session_start();
require("twitteroauth/twitteroauth.php");
// The TwitterOAuth instance
$twitteroauth = new TwitterOAuth('***', '***');
// Requesting authentication tokens, the parameter is the URL we will be redirected to
$request_token = $twitteroauth->getRequestToken('http://livepierced.com/reg_twit.php');
// Saving them into the session
$_SESSION['oauth_token'] = $request_token['oauth_token'];
$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret'];
// If everything goes well..
if($twitteroauth->http_code==200){
// Let's generate the URL and redirect
$url = $twitteroauth->getAuthorizeURL($request_token['oauth_token']);
//var_dump($url);
header('Location: '. $url);
} else {
// It's a bad idea to kill the script, but we've got to know when there's an error.
//die('Something wrong happened.');
}
この時点で、セッションを var ダンプしてUID
、、、AuthToken
およびAuthTokenSecret
ただし、Twitter 側で [Authorize] をクリックすると、次のページに戻ります。
session_start();
require("twitteroauth/twitteroauth.php");
if(!empty($_GET['oauth_verifier']) && !empty($_SESSION['oauth_token']) && !empty($_SESSION['oauth_token_secret'])){
// We've got everything we need
echo "<h1>TOKEN GOOD BRO!</h1>";
} else {
// Something's missing, go back to square 1
//var_dump($_REQUEST);
//header('Location: req_twit.php');
}
ただし、$_SESSION を var ダンプしてもセッション ID しか得られないため、セッションが破棄されたか、新しいセッションが開始されました。