2015-02-09 5 views
4

Я использую библиотеку TwitterOAuth PHP для подключения моей веб-страницы к Twitter, чтобы получить данные аутентифицированных пользователей, но она не работает вообще, я пытался со вчерашнего дня, и я все еще не выяснил, как это сделать.Twitter oAuth Недействительный токен запроса

Это мой код:

$twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET); 
    $credentials = $twitter->oauth('oauth/request_token', array('oauth_callback' => OAUTH_CALLBACK)); 
    $url = $twitter->url("oauth/authorize", array("oauth_token" => $credentials['oauth_token'])); 
    $_SESSION["oauth_token"] = $credentials["oauth_token"]; 
    $_SESSION["oauth_token_secret"] = $credentials["oauth_token_secret"]; 
    ?> 
    <input type="button" name="contactTwitter" id="contactTwitter" onClick='window.location="<?php echo $url; ?>"' value="Connect to Twitter!"/> 
    <?php 
    if(isset($_GET['oauth_verifier'])) : 
     $at=$twitter->oauth("oauth/access_token", array("oauth_verifier" => $_REQUEST['oauth_verifier'])); 
     var_dump($at); 
    endif; 

И это не работает вообще. Я нашел много результатов для решения проблем TwitterOAuth, но никто мне не помог. Я понял, что Twitter API работает как , отправляя request_token, принимаю token_verifiers и приобретаю access_tokens, но он не работает здесь.
Спасибо за помощь.

ответ

6

Проблема решена.
Я использовал другой файл PHP, чтобы получить результат обратного вызова TwitterOAuth, который отправляет access_token на мою предыдущую страницу, которая не работает.
В случае, если кто-то будет нуждаться в этом, я проводка callback.php кода:

require_once('config.php'); 
session_start(); 
use Abraham\TwitterOAuth\TwitterOAuth; 
$request_token = array(); 
$request_token['oauth_token'] = $_SESSION['oauth_token']; 
$request_token['oauth_token_secret'] = $_SESSION['oauth_token_secret']; 

$connection = new TwitterOAuth(TW_CONSUMER_KEY, TW_CONSUMER_SECRET, $request_token['oauth_token'], $request_token['oauth_token_secret']); 
$access_token = $connection->oauth("oauth/access_token", array("oauth_verifier" => $_REQUEST['oauth_verifier'])); 

if (200 == $connection->lastHttpCode()) { 
    $_SESSION['access_token'] = $access_token; 
    unset($_SESSION['oauth_token']); 
    unset($_SESSION['oauth_token_secret']); 
    $_SESSION['status'] = 'verified'; 
} else { 
    session_destroy(); 
} 

header('Location:./reg.php?st=3'); 

Чем, на странице регистрации я просто повторно использовать сохраненную $_SESSION['access_token'], которые я нашел раньше.

+0

Большое спасибо за это. Это была последняя помощь, которую мне нужно было преодолеть. Необычно это заняло у меня столько времени. –

+1

В случае, если кто-то появляется здесь и, как и я, не находит решение здесь сразу очевидным: 1) После запроса токена вам нужно сохранить эти данные токена. 2) Затем, когда вы получаете токен доступа, вы должны передать данные токена запроса в экземпляр 'TwitterOAuth'. – curtisblackwell

+0

Я использую те же методы, но twitter отклонил сохраненный '$ _SESSION ['access_token']' i получил сообщение sae ''Неверный запрос token.'' –

Смежные вопросы