2013-08-11 9 views
8

Questa è la mia prima volta che gioco con un api e oauth e tumblr ha un php client. Ho scaricato e installato il client con il compositore. Questo è il codice che devono impostare il client.ottiene token oauth con client php ufficiale tumblrs

$client = new Tumblr\API\Client($consumerKey, $consumerSecret); 
$client->setToken($token, $tokenSecret); 

So che la chiave e il segreto, ma come faccio a ottenere il token e segreto token con cliente tumblrs php?

so anche il processo di OAuth, ma non so come implementare in realtà:/

risposta

4

Solo così siamo nella stessa pagina, è possibile ottenere segreto token e l'utente passando attraverso la flow-in di accesso con il browser. Il flusso di Tumblr è praticamente lo stesso di Twitter, quindi puoi utilizzarlo come riferimento: Implementing Sign in with Twitter. Puoi vedere la parte OAuth in Tumblr Authentication documentation per ottenere gli endpoint corretti.

Nota che Tumblr's PHP client che si è collegato al ha l'URL di base predefinita insieme ai "http://api.tumblr.com/", mentre gli endpoint OAuth (ad esempio request_token) usare "http://www.tumblr.com". Per poter utilizzare gli endpoint OAuth, devi solo modificare l'URL di base. Ecco un esempio della prima fase del flusso di accesso, ricevendo una richiesta di token:

// Requesting for http://www.tumblr.com/oauth/request_token 

$client = new Tumblr\API\Client($consumerKey, $consumerSecret); 
// Change the base url 
$client->getRequestHandler()->setBaseUrl('http://www.tumblr.com/'); 
$req = $client->getRequestHandler()->request('POST', 'oauth/request_token', [ 
    'oauth_callback' => '...', 
]); 
// Get the result 
$result = $req->body->__toString(); 

Si dovrebbe ottenere questo $result:

oauth_token=ulE1EuaZvJSN0qIKfQO5EFgcrxrOLJF0Cnm7VbLQqj66oF9nwt&oauth_token_secret=PLjC7s4JeIlgm53q7FKL1wqQkFoL0775JC6UkHKiepAQ6TxXxp&oauth_callback_confirmed=true 

Vai a questa commit in Github per maggiori informazioni su come questo è stato reso possibile.

+0

dopo aver ottenuto la chiave oauth non posso eseguire nessuno dei comandi api come '$ client-> getBlogInfo ($ blogname);'. gira 'Errore irreversibile: Uncaught Tumblr \ API \ RequestException: [404]: Non trovato lanciato in lib \ Tumblr \ API \ Client.php sulla riga 426' che altro mi manca? – Yamiko

+1

@yamikoWebs Dato che hai cambiato 'baseUrl', dovrai cambiarlo di nuovo:' $ client-> getRequestHandler() -> setBaseUrl ('http://api.tumblr.com'); 'oppure tu potrebbe creare un'istanza separata di 'Tumblr \ API \ Client'. – Shiki

+0

è oltre lo scopo di questa domanda, ma come autorizzo in modo che possa inviare post con l'API? – Yamiko

Problemi correlati