Używam Twittera do logowania użytkowników do witryny, która wydaje się działać, dopóki nie spróbuję uzyskać prawidłowego tokena dostępu.Dlaczego mój token dostępu do Twittera jest nieważny/nieważny
require("twitteroauth.php");
require 'twconfig.php';
session_start();
$twitteroauth = new TwitterOAuth(YOUR_CONSUMER_KEY, YOUR_CONSUMER_SECRET);
$request_token = $twitteroauth->getRequestToken('http://****/tw_response.php');
$oauth_token = $request_token['oauth_token'];
$_SESSION['oauth_token'] = $oauth_token;
$oauth_token_secret = $request_token['oauth_token_secret'];
$_SESSION['oauth_token_secret'] = $oauth_token_secret;
if ($twitteroauth->http_code == 200) {
url = $twitteroauth->getAuthorizeURL($request_token['oauth_token']);
header('Location: '.$url);
} else {
die('Something wrong happened.');
}
To wydaje się działać poprawnie, przekierowanie mnie do Twittera Aby zalogować się i potwierdzić dostępu, po czym wraca do mnie mój oddzwan tw_response.php (URL), o następujących zmiennych w adresie URL:
http://example.com/login.php?oauth_token=sO3X...yj0k&oauth_verifier=Ip6T...gALQ
W tw_response.php Próbuję następnie uzyskać token dostępu, ale jest on nieprawidłowy. Próbowałem za pomocą var_dump
aby przeglądać zawartość tokenu dostępu następująco:
require("twitteroauth.php");
require 'twconfig.php';
session_start();
$oauth_verifier = $_REQUEST['oauth_verifier'];
$oauth_token = $_SESSION['oauth_token'];
$oauth_token_secret = $_SESSION['oauth_token_secret'];
$twitteroauth = new TwitterOAuth(YOUR_CONSUMER_KEY, YOUR_CONSUMER_SECRET, $oauth_token, $oauth_token_secret);
$access_token = $twitteroauth->getAccessToken($data['oauth_verifier']);
var_dump($access_token);
Wynik var_dump
kończy się "nieważne/upłynął token":
array(8) {
["oauth_url"] => string(104) ""1.0" encoding="UTF-8"?>/oauth/access_token?oauth_consumer_key=ceE...9Dg"
["oauth_nonce"]=> string(32) "c52...d07"
["oauth_signature"]=> string(28) "ry7...Fcc="
["oauth_signature_method"]=> string(9) "HMAC-SHA1"
["oauth_timestamp"]=> string(10) "1359031586"
["oauth_token"]=> string(40) "sO3...j0k"
["oauth_verifier"]=> string(43) "Ip6...ALQ"
["oauth_version"]=> string(63) "1.0 Invalid/expired Token "
}
To jest za pomocą biblioteki Abraham Williamsa? Wygląda na to, że 'getAccessToken (code)' działa tylko wtedy, gdy wywoływana strona daje użytkownikowi kod do wpisania po umożliwieniu dostępu. Myślę, że musisz użyć obu informacji podczas korzystania z URL-a wywołania zwrotnego. – NoBugs
Jeśli używasz poprawnego adresu URL wywołania zwrotnego, nie musisz weryfikować "oauth_verifier" za pomocą poświadczeń. w każdym razie to sprawdzam. – Amelia
Czy zegar serwera działa poprawnie? –