Twitter OAUTH返回一个空数组

Ogu*_*nwu 5 php twitter oauth twitter-oauth

我正在进行twitter认证,一切似乎都运行良好,直到我得到getAccessToken哪些回报Array ( [ ] => ).

我做了什么:

  1. 第一阶段:

    $connection = new TwitterOAuth('xxxxxxxx','xxxxxxxx');
    
    $temporary_credentials = $connection->getRequestToken('http://example.com/profile.php?passurl=1');
    
    $redirect_url = $connection->getAuthorizeURL($temporary_credentials);
    
    $_COOKIE['oauth_token'] = $temporary_credentials['oauth_token'];
    
    $_COOKIE['oauth_token_secret'] = $temporary_credentials['oauth_token_secret'];
    
    header("Location: $redirect_url");
    
    Run Code Online (Sandbox Code Playgroud)
  2. 第二阶段(这是我遇到问题的地方)

    $connection =
            new TwitterOAuth(
                    'xxxxxxxxxx',
                    'xxxxxxxxxx',
                    $_COOKIE['oauth_token'],
                    $_COOKIE['oauth_token_secret']
                    ); 
    $token_credentials = $connection->getAccessToken();
    
    Run Code Online (Sandbox Code Playgroud)

我打算$token_credentials在数据库中保存值,但它返回一个空数组:Array ( [ ] => )

我不对的是什么?

mpr*_*att 3

您是否将“oauth_verifier”传递给 getAccessToken 方法?在您提供的示例代码中,您没有这样做。看看这个图,特别是 D 部分

OAuth 图

我过去使用过 twitteroauth,我记得是这样做的。(开始第二阶段)

$twitterOauth = new TwitterOAuth($AppId, $twSecret, $_COOKIE['oauth_token'], $_COOKIE['oauth_token_secret']);
$twToken = $twitterOauth->getAccessToken($_REQUEST['oauth_verifier']);

$newTwitterOauth = new TwitterOAuth($AppId,  $twSecret, $twToken['oauth_token'], $twToken['oauth_token_secret']);
$response  = (array) $newTwitterOauth->get('account/verify_credentials');
var_dump($response);
Run Code Online (Sandbox Code Playgroud)

不过,我有几个建议:

  • 我强烈建议您使用会话来完成这项工作,而不是将该信息存储在 cookie 中。
  • 如果您坚持使用cookie,请使用setcookie功能。