Как получить пользовательский OAuth для API Tumblr в PHP?

Используя Tumblr v2 API по умолчанию, я могу подключиться к своему приложению и получать сообщения из своей учетной записи. Однако я бы хотел, чтобы пользователи могли подключать свои своя Счета. Я пытался выяснить это, но я не совсем уверен, как использовать OAuth (я использую этот класс). Как это сделать?

Код, который я использую для получения сообщений панели инструментов:

$consumerKey = 'xxx';
$consumerSecret = 'xxx';
$tumblr = new Tumblr\API\Client(
$consumerKey,
$consumerSecret
);

var_dump( $tumblr->getDashboardPosts() ); // using var_dump for testing purposes only

Этот код работает, но он возвращает только код моего ЛИЧНОГО аккаунта.

0

Решение

Я понял это, благодаря пользователю Github seejohnrun,

require_once 'include/util.php';

$consumerKey = 'XXX';
$consumerSecret = 'XXX';
$client = new Tumblr\API\Client($consumerKey, $consumerSecret);
$requestHandler = $client->getRequestHandler();
$requestHandler->setBaseUrl('https://www.tumblr.com/');

// If we are visiting the first time
if (!$_GET['oauth_verifier']) {

// grab the oauth token
$resp = $requestHandler->request('POST', 'oauth/request_token', array());
$out = $result = $resp->body;
$data = array();
parse_str($out, $data);

// tell the user where to go
echo '<a href="https://www.tumblr.com/oauth/authorize?oauth_token=' . $data['oauth_token'].'"> GO </a>';
$_SESSION['t']=$data['oauth_token'];
$_SESSION['s']=$data['oauth_token_secret'];

} else {

$verifier = $_GET['oauth_verifier'];

// use the stored tokens
$client->setToken($_SESSION['t'], $_SESSION['s']);

// to grab the access tokens
$resp = $requestHandler->request('POST', 'oauth/access_token', array('oauth_verifier' => $verifier));
$out = $result = $resp->body;
$data = array();
parse_str($out, $data);

// and print out our new keys we got back
$token = $data['oauth_token'];
$secret = $data['oauth_token_secret'];
echo "token: " . $token . "<br/>secret: " . $secret;

// and prove we're in the money
$client = new Tumblr\API\Client($consumerKey, $consumerSecret, $token, $secret);
$info = $client->getUserInfo();
echo "<br/><br/>congrats " . $info->user->name . "!";

}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]