Twitter OAuth保持重定向到https://twitter.com/oauth/authenticate?oauth_token=XYZ

时间:2011-06-10 10:44:03

标签: twitter oauth twitter-oauth

我认为我已正确实施了twitter oauth,但每次用户点击我的网站上的Twitter登录时,都会被重定向到https://twitter.com/oauth/authenticate?oauth_token=XYZ,系统会提示他再次授权我的应用

我的源代码基于: http://www.9lessons.info/2011/02/login-with-facebook-and-twitter.html本身似乎基于https://github.com/abraham/twitteroauth/tree/master/twitteroauth

$twitteroauth = new TwitterOAuth(TWITTER_KEY, TWITTER_SECRET);
// Requesting authentication tokens, the parameter is the URL we will be redirected to
$request_token = $twitteroauth->getRequestToken($site_url.'getTwitterData.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']);
    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('The Twitter service is currently not responding. Please try again later.');
}
?>

在twitteroauth.php中,我之前有过:

   function accessTokenURL()  { return 'https://api.twitter.com/oauth/access_token'; }
   function authenticateURL() { return 'https://twitter.com/oauth/authenticate'; }
   function authorizeURL()    { return 'https://twitter.com/oauth/authorize'; }
   function requestTokenURL() { return 'https://api.twitter.com/oauth/request_token'; }

然后尝试了:

   function accessTokenURL()  { return 'https://api.twitter.com/oauth/access_token'; }
   function authenticateURL() { return 'https://api.twitter.com/oauth/authenticate'; }
   function authorizeURL()    { return 'https://api.twitter.com/oauth/authorize'; }
   function requestTokenURL() { return 'https://api.twitter.com/oauth/request_token'; }

同样 - 但没有运气。

1 个答案:

答案 0 :(得分:4)

答案:twitter.com上设置的应用程序权限级别与我们正在进行的操作不符。

来自Twitter的消息:

  

如果您使用oauth / authenticate   没有设置的方法   force_login或screen_name参数,   Twitter将重定向回你的   站点,只要用户被记录   进入Twitter并且已经有效   您的OAuth访问令牌   应用。如果你最近   切换了您的应用程序的权限   级别(例如,从读/写到   读/写/ DM),这种重定向不会   自从获得新许可以来就会发生   请求。如果这没有用,你   也许还想发布一下这个   我们的开发者谈话组:   http://groups.google.com/group/twitter-development-talk   。我们的API工程团队进行互动   与开发人员定期在这里   基础。