Ошибка неверного / просроченного токена в Twitter API - PullRequest
1 голос
/ 13 октября 2011

Я использую библиотеку PHP OAUTH от Jason Mathai и продолжаю получать ошибку токена с недействительным / истекшим сроком действия всякий раз, когда пытаюсь получить доступ к информации пользователя с помощью следующего тестового кода:

//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, получают вызовы через API Twitter. Я полагаю, что моя проблема не имеет ничего общего с библиотекой Джейсона (поскольку она довольно хорошо используется), а как-то связана с моей логикой. Вся помощь приветствуется!

1 Ответ

1 голос
/ 13 октября 2011

Как только вы получаете oauth_token из твиттера, вы сохраняете его в сеансе и каждый раз, когда делаете запрос с этим же сохраненным сеансом. Токены имеют некоторое время истечения на сервере, поэтому через некоторое время вы начинаете получать ошибку токена истечения.

Эта ссылка может дать вам некоторое представление о создании простого приложения для Twitter.

...