danperron/oauthconsumer

OAuth 1.0 Consumer for PHP


License
MIT

Documentation

#OAuth 1.0 Consumer for PHP

##Installation

Simply add the following requires to your composer.json and run php composer.phar update.

{
    "minimum-stability":"dev",
    "require": {
        "danperron/oauthconsumer":"*"
    }
}

##Usage

###Obtaining and authenticating a request token

<?php
/**
 * authenticate.php
 */
require_once './vendor/autoload.php';

use danperron\OAuth\OAuthConsumer;
use danperron\OAuth\OAuthException;

session_start();

$consumerKey = '{YOUR_CONSUMER_KEY}';
$consumerSecret = '{YOUR_CONSUMER_SECRET}';

//create a new OAuthConsumer
$oauthConsumer = new OAuthConsumer($consumerKey, $consumerSecret);

$oauthConsumer->setRequestTokenUrl('https://api.twitter.com/oauth/request_token');
$oauthConsumer->setAccessTokenUrl('https://api.twitter.com/oauth/access_token');
$oauthConsumer->setAuthorizeUrl('https://api.twitter.com/oauth/authorize');
$oauthConsumer->setCallbackUrl('{URL to callback.php}');

try {
    //Fetch request token
    $requestToken = $oauthConsumer->fetchRequestToken();
    
    //Add the consumer and the request token to the session
    $_SESSION['oauthConsumer'] = $oauthConsumer;
    $_SESSION['requestToken'] = $requestToken;
    
    //Authorize request token will perform a redirect
    $oauthConsumer->authorizeToken($requestToken);
    
} catch (OAuthException $e) {
    echo $e->getTraceAsString();
}

###Authenticating a request token and making a authorized call.

<?php
/**
 * callback.php
 */
require_once './vendor/autoload.php';

use danperron\OAuth\OAuthConsumer;
use danperron\OAuth\OAuthException;
use danperron\OAuth\OAuthToken;

session_start();

//Retrieve OAuthConsumer from session
$oauthConsumer = $_SESSION['oauthConsumer'];
/* @var $oauthConsumer OAuthConsumer */

//Retrieve request token from session
$requestToken = $_SESSION['requestToken'];
/* @var $requestToken OAuthToken */
try {
    //Trade in newly authorized request token for an access token
    $accessToken = $oauthConsumer->fetchAccessToken($requestToken, array('oauth_verifier' => $_GET['oauth_verifier']));

    //Set the token on the oauth consumer
    $oauthConsumer->setToken($accessToken);

    //Request Twitter timeline and print
    $statuses = $oauthConsumer->makeRequest('https://api.twitter.com/1.1/statuses/home_timeline.json', OAuthConsumer::METHOD_GET);
    echo "Statuses:";
    var_dump(json_decode($statuses));
} catch (OAuthException $e) {
    echo $e->getTraceAsString();
}