2012-04-27 12 views
5

Sto lavorando all'autenticazione di Twitter, tutto sembra funzionare bene fino a quando arrivo a getAccessToken che restituisce Array ([ ] =>).Twitter OAUTH restituisce un array vuoto

quello che ho fatto:

  1. Prima fase:

    $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"); 
    
  2. seconda fase (questo è dove ho incontrato il problema)

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

intendo salvare i valori $token_credentials nel database ma restituisce un array vuoto: Array ([ ] =>)

Cosa non sto andando bene?

+2

per favore la prossima volta prova a indentare il tuo codice prima di postarlo, era totalmente illeggibile! – m09

+0

grazie per il montaggio! –

+0

In 'twitteroauth.php' aggiungi un' var_dump ($ response); 'alla fine della funzione' http'. Questa sarà la risposta non elaborata restituita da Twitter. È un errore o un token di accesso? – abraham

risposta

3

Passate "oauth_verifier" al metodo getAccessToken? Nel codice di esempio che stai dando, non lo stai facendo. Date un'occhiata a questo schema, specialmente da parte D

OAuth Diagram

ho usato twitteroauth in passato e mi ricordo di aver fatto in questo modo. (A partire dalla seconda fase)

$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); 

Ci sono un paio di suggerimenti che vorrei fare però:

  • Invece di stoing che le informazioni in un cookie, vi consiglio caldamente di utilizzare le sessioni di fare il lavoro.
  • Se si desidera utilizzare i cookie, utilizzare la funzione setcookie.
+0

sì, hai colto i due problemi: 1. Non stavo impostando il cookie nel modo giusto. 2. Non stavo passando l'oauth _verifier per getAccessToken. –

0

Da dove viene la lezione di TwitterOAuth? È una lezione standard? O l'hai scritto tu stesso? Proverò a eseguire il debug della classe stessa e a fornire un output più dettagliato nelle funzioni di classe.

+0

usando questo: https://github.com/abraham/twitteroauth ... si prega gentilmente di suggerire qualsiasi correzione. grazie –

+0

Prova a inviare una domanda su github per quel progetto. Potresti ottenere risposte migliori lì, poiché è una classe personalizzata. –

+0

c'è qualche altra classe disponibile che si possa usare. Ho davvero bisogno di farlo funzionare! arghh !!! –

0

perché stai utilizzando i cookie? utilizza cookie è un potenziale rischio perché sono memorizzati sul lato client, utilizzare SESSIONE invece

Un'altra domanda: in teh $redirect_url se u fare un print_r del $_COOKIE['oauth_token'] e l'altro, r vuoto?

Sto chiedendo questo perché se si disabilitano i cookie da qualche addon (come webdeveloper in firefox) o nella configurazione del browser. Forse stai utilizzando valori vuoti su $_COOKIE['oauth_token'], e $_COOKIE['oauth_token_secret'].

+0

sto riscontrando problemi nell'impostare SESSIONS sul sito, quindi temporaneamente per il testing sto usando COOKIES che in realtà detiene i giusti valori. –

Problemi correlati