2013-08-11 21 views
8

To jest mój pierwszy raz grając z api i oauth i tumblr ma php client. Pobrałem i zainstalowałem klienta z kompozytorem. To jest kod, który muszą skonfigurować klienta.Otrzymuj toauth token z tumblrs oficjalnym klientem php

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

Znam klucz konsumenta i sekret, ale w jaki sposób mogę uzyskać token i token za pomocą klienta tumblrs php?

wiem też proces OAuth ale nie wiem jak faktycznie wdrożyć go:/

Odpowiedz

4

Tak więc jesteśmy na tej samej stronie, można uzyskać użytkownika tokenu i tajemnicy przechodząc przez Strumień przepływu w przeglądarce. Przepływ Tumblra jest podobny do Twittera, więc możesz go użyć jako odnośnika: Implementing Sign in with Twitter. Możesz przejrzeć część OAuth w Tumblr's Authentication documentation, aby uzyskać prawidłowe punkty końcowe.

Zauważ, że Tumblr's PHP client że związana ma domyślna baza url zestaw do "http://api.tumblr.com/" natomiast punktów końcowych OAuth (np request_token) używać "http://www.tumblr.com". Aby móc używać punktów końcowych OAuth, wystarczy zmienić podstawowy adres URL. Oto przykład z pierwszego etapu w przepływie logowania, uzyskanie tokenu żądania:

// 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(); 

powinien dostać to w $result:

oauth_token=ulE1EuaZvJSN0qIKfQO5EFgcrxrOLJF0Cnm7VbLQqj66oF9nwt&oauth_token_secret=PLjC7s4JeIlgm53q7FKL1wqQkFoL0775JC6UkHKiepAQ6TxXxp&oauth_callback_confirmed=true 

Zobacz ten commit w Github, aby uzyskać więcej informacji na temat sposobu to było możliwe.

+0

po otrzymaniu klucza Oauth Nie mogę uruchomić żadnego z poleceń api, takich jak '$ client-> getBlogInfo ($ blogname);'. rzuca "Błąd krytyczny: Uncaught Tumblr \ API \ RequestException: [404]: Nie znaleziono w lib \ Tumblr \ API \ Client.php na linii 426" czego jeszcze brakuje? – Yamiko

+1

@yamikoWebs Ponieważ zmieniłeś 'baseUrl', będziesz musiał zmienić to z powrotem:' $ client-> getRequestHandler() -> setBaseUrl ('http://api.tumblr.com'); 'lub ty może utworzyć osobną instancję 'Tumblr \ API \ Client'. – Shiki

+0

wykracza poza zakres tego pytania, ale w jaki sposób mogę autoryzować, aby móc przesyłać posty za pomocą interfejsu API? – Yamiko