問題描述
PHP Twitter OAuth - 我無法驗證我的帳戶 (PHP Twitter OAuth - I cannot authenticate my account)
I am struggling whole day with implementation of Twitter authentication (with using OAuth), but I am already desperate, I am still getting the error message Could not authenticate you., it's becoming my nightmare.
Here are my two files which I use for authentication:
requestOauth.php
session_start();
$basedir=dirname(__FILE__)."";
include($basedir.'/config.php');
include_once( $basedir.'/twitteroauth/twitteroauth.php' );
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
$request_token = $connection->getRequestToken(OAUTH_CALLBACK);
//$_SESSION['oauth_token'] = $token = $request_token['oauth_token'];
//$_SESSION['oauth_token_secret'] = $secret = $request_token['oauth_token_secret'];
$_SESSION['oauth_token'] = $request_token['oauth_token'];
$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret'];
switch ($connection->http_code) {
case 200:
$url = $connection->getAuthorizeURL($_SESSION['oauth_token'], FALSE);
header('Location: ' . $url);
break;
default:
echo 'Could not connect to Twitter. Refresh the page or try again later.';
}
index.php
if(!isset($_GET['oauth_verifier'])){
$link_redirect = '<a href="requestOauth.php">Login With Twitter</a>';
}
else
{
if(isset($_SESSION['access_token'])){
$oauth_token = $_SESSION['access_token']['oauth_token'];
$oauth_token_secret = $_SESSION['access_token']['oauth_token_secret'];
$twitterRequest = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $oauth_token, $oauth_token_secret);
} else {
$twitterRequest = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);
$accessToken = $twitterRequest->getAccessToken($_GET['oauth_verifier']);
$_SESSION['access_token'] = $accessToken;
echo 'ACCESS TOKEN2: '.var_dump($_SESSION['access_token']);
}
$user_info = $twitterRequest->get('account/verify_credentials');
if(isset($user_info->error))
{
echo $user_info->error;
//header("location: requestOauth.php");
} else {
var_dump($_GET);
}
I am still getting the error Could not authenticate you. and already have no idea, where could be something wrong...
Could you please give me any help, how to figure out this problem?
Thank you
參考解法
方法 1:
According to the documentation, step 8 you have to build another TwitterOAuth
object after calling getAccessToken
with the values you get from there.
In your case something like this could work:
$twitterRequest = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $accessToken['oauth_token'], $accessToken['oauth_token_secret']);
(by user984621、Jan Gerlinger)