无效/过期令牌错误与Twitter API


Invalid/Expired Token error with Twitter API

我正在使用Jason Mathai的PHP OAUTH库,每当我尝试使用以下测试代码访问用户的信息时,我都会得到无效/过期的令牌错误:

//sessions stuff here
 session_start(); 
//twitter stuff
include 'lib/EpiCurl.php';
include 'lib/EpiOAuth.php';
include 'lib/EpiTwitter.php';
include 'lib/secret.php';

    //ensure token is set for the session
    $twitterObj = new EpiTwitter($consumer_key, $consumer_secret); 
    if($_GET['oauth_token']){
    $_SESSION['o_token'] = $_GET['oauth_token'];
    }
    if(!isset($_SESSION['o_token']))
          { 
    $url = $twitterObj->getAuthorizationUrl();
         header("Location:$url");
            die();
                } 
    $o_token = $_SESSION['o_token'];
    $twitterObj->setToken($o_token);  
    $token = $twitterObj->getAccessToken();  
    $twitterObj->setToken($token->oauth_token, $token->oauth_token_secret);  
    setcookie('oauth_token', $token->oauth_token);  
    setcookie('oauth_token_secret', $token->oauth_token_secret);    
    $twitterObj = new EpiTwitter($consumer_key, $consumer_secret,$_COOKIE['oauth_token'], $_COOKIE['oauth_token_secret']);  
    $twitterInfo= $twitterObj->get_accountVerify_credentials();
    $twitterInfo->response;
    var_dump($twitterInfo->response); // this tells me the error 
                try{  
                   echo $twitterInfo->screen_name;  
                    }catch(EpiTwitterException $e){  
                       echo $e->getMessage();  
                      }   

所有的方法直接映射到HTTP与twitter API的get调用,我认为我的问题与Jason的库无关(因为它使用得相当好),但与我的逻辑有关。感谢所有的帮助!

一旦您从twitter获得oauth_token,您就将其存储到会话中,并且每次您使用相同的存储会话发出请求时。令牌在服务器上设置了一些过期时间,所以一段时间后,您开始收到过期令牌错误。

这个链接可以让你对创建一个简单的twitter应用程序有一些了解。