Skip to content

Instantly share code, notes, and snippets.

@vitor-mariano
Last active August 31, 2015 21:15
Show Gist options
  • Save vitor-mariano/5cbc46a58d94be8536ae to your computer and use it in GitHub Desktop.
Save vitor-mariano/5cbc46a58d94be8536ae to your computer and use it in GitHub Desktop.
Obtendo autorização do Tumblr com o OAuth.
<?php
namespace App\Http\Controllers;
use Tumblr\API\Client as TumblrClient;
use Illuminate\Http\Request;
use Tumblr\API\RequestException;
use App\Http\Controllers\Controller;
class AppController extends Controller
{
public function __construct(Request $request)
{
$this->request = $request;
}
/**
* Display a authorization view.
*
* @return Response
*/
public function getAuthorize()
{
$tumblr = new TumblrClient(
env('TUMBLR_CONSUMER_KEY'),
env('TUMBLR_CONSUMER_SECRET')
);
$requestHandler = $tumblr->getRequestHandler();
$requestHandler->setBaseUrl('https://www.tumblr.com');
$response = $requestHandler->request('POST', 'oauth/request_token', [
'oauth_callback' => route('app.authorized')
]);
if ($response->status != 200) {
throw new RequestException($response);
}
parse_str((string) $response->body, $tokens);
foreach (['oauth_token', 'oauth_token_secret'] as $token) {
$this->request->session()->flash($token, $tokens[$token]);
}
return view('app.authorize')->with('oauthToken', $tokens['oauth_token']);
}
public function getAuthorized()
{
$tumblr = new TumblrClient(
env('TUMBLR_CONSUMER_KEY'),
env('TUMBLR_CONSUMER_SECRET'),
$this->request->session()->get('oauth_token'),
$this->request->session()->get('oauth_token_secret')
);
$requestHandler = $tumblr->getRequestHandler();
$requestHandler->setBaseUrl('https://www.tumblr.com');
$response = $requestHandler->request('POST', 'oauth/access_token', [
'oauth_verifier' => $this->request->input('oauth_verifier')
]);
if ($response->status != 200) {
return view('app.unauthorized');
}
parse_str((string) $response->body, $tokens);
dd($tokens);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment