Twitter身份验证:403禁止访问:服务器理解请求,但拒绝履行请求

时间:2012-08-03 09:17:50

标签: twitter twitter-oauth http-status-code-403

我正在尝试使用OAuth对用户进行身份验证并检索用户数据。当用户未登录到Twitter时,身份验证有效,我可以获取用户详细信息。但是,如果用户已经在Twitter上登录,我收到此错误消息'403 Forbidden:服务器理解请求,但拒绝履行它。 。在一些帖子中,他们说要通过https而不是http来发出所有请求。我做了。我已经从'http://net.tutsplus.com/tutorials/php/how-to-authenticate-users-with-twitter-oauth/'下载了身份验证代码。请帮忙。

$twitterOauthObj    =   new TwitterOAuth($oauth_consumer_key, $oauth_consumer_secret);
if(!isset($_GET['oauth_token'])){

    $requestTokenArray  =   $twitterOauthObj->getRequestToken($callback_url);
    $requestToken       =   $requestTokenArray['oauth_token'];
    $tokenSecret        =   $requestTokenArray['oauth_token_secret'];

    $authorizeUrl       =   $twitterOauthObj->getAuthorizeURL($requestToken);
    $response       =   $twitterOauthObj->oAuthRequest($authorizeUrl, 'GET', $requestTokenArray);
    print_r($response);
} else{

    $oauthToken     =   $_GET['oauth_token'];
    $requestToken       =   $oauthToken;
    $oauthVerifier      =   $_GET['oauth_verifier'];
    $accessTokenArray   =   $twitterOauthObj->getAccessToken($oauthVerifier, $oauthToken);
        $oauthToken     =   $accessTokenArray['oauth_token'];
    $oauthTokenSecret   =   $accessTokenArray['oauth_token_secret'];
    $userTwitterId      =   $accessTokenArray['user_id'];
    $screenName     =   $accessTokenArray['screen_name'];
 }

1 个答案:

答案 0 :(得分:3)

确定。我搞定了。我没有重定向到正确授权网址。这是修改后的代码。

if(!isset($_GET['oauth_token'])){

    $requestToken   =   $twitterOauthObj->getRequestToken();
    $_SESSION["oauth_token"] = $requestToken["oauth_token"];
    $_SESSION["oauth_token_secret"] = $requestToken["oauth_token_secret"];

    header("Location:".$twitterOauthObj->getAuthorizeURL($requestToken["oauth_token"]));

}

谢谢你们所有宝贵的建议。真的很感激!!