2011-10-13 72 views
1

我使用贾森马的PHP OAUTH库令牌错误,我不断收到一个无效/到期令牌错误,每当我尝试用下面的测试代码访问用户的信息:无效/过期与Twitter API

//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的调用我认为我的问题与Jason的库无关(因为它的使用相当好),但与我的逻辑有关。所有帮助表示赞赏!

回答

1

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

This link可以为您创建一个简单的Twitter应用程序的一些理解。

+1

这是他使用的链接 – tekknolagi

+0

我认为。至少从代码。 – tekknolagi

+0

雅,但链接和发布代码上的代码正在不同的地方使用会话。 –