Joomla Platform  13.1
Documentation des API du framework Joomla Platform
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Pages
Référence de la classe JOAuth1Client
+ Graphe d'héritage de JOAuth1Client:

Liste de tous les membres

Fonctions membres publiques

 __construct (JRegistry $options=null, JHttp $client=null, JInput $input=null, JApplicationWeb $application=null, $version=null)
 authenticate ()
 oauthRequest ($url, $method, $parameters, $data=array(), $headers=array())
 validateResponse ($url, $response)
 toUrl ($url, $parameters)
 safeEncode ($data)
 verifyCredentials ()
 getOption ($key)
 setOption ($key, $value)
 getToken ()
 setToken ($token)

Fonctions membres publiques statiques

static generateNonce ()

Attributs protégés

 $options
 $token = array()
 $client
 $input
 $application
 $version

Fonctions membres privées

 _generateRequestToken ()
 _authorise ()
 _generateAccessToken ()
 _createHeader ($parameters)
 _signRequest ($url, $method, $parameters)
 _baseString ($url, $method, $parameters)
 _prepareSigningKey ()

Description détaillée

Définition à la ligne 19 du fichier client.php.


Documentation des constructeurs et destructeur

JOAuth1Client::__construct ( JRegistry  $options = null,
JHttp  $client = null,
JInput  $input = null,
JApplicationWeb  $application = null,
  $version = null 
)

Constructor.

Paramètres:
JRegistry$optionsOAuth1Client options object.
JHttp$clientThe HTTP client object.
JInput$inputThe input object
JApplicationWeb$applicationThe application object
string$versionSpecify the OAuth version. By default we are using 1.0a.
Depuis:
13.1

Définition à la ligne 68 du fichier client.php.

Références JFactory\getApplication(), et JHttpFactory\getHttp().

{
$this->options = isset($options) ? $options : new JRegistry;
$this->client = isset($client) ? $client : JHttpFactory::getHttp($this->options);
$this->input = isset($input) ? $input : JFactory::getApplication()->input;
$this->application = isset($application) ? $application : new JApplicationWeb;
$this->version = isset($version) ? $version : '1.0a';
}

+ Voici le graphe d'appel pour cette fonction :


Documentation des fonctions membres

JOAuth1Client::_authorise ( )
private

Method used to authorise the application.

Renvoie:
void
Depuis:
13.1

Définition à la ligne 198 du fichier client.php.

{
$url = $this->getOption('authoriseURL') . '?oauth_token=' . $this->token['key'];
if ($this->getOption('scope'))
{
$scope = is_array($this->getOption('scope')) ? implode(' ', $this->getOption('scope')) : $this->getOption('scope');
$url .= '&scope=' . urlencode($scope);
}
if ($this->getOption('sendheaders'))
{
$this->application->redirect($url);
}
}
JOAuth1Client::_baseString (   $url,
  $method,
  $parameters 
)
private

Prepare the signature base string.

Paramètres:
string$urlThe URL to sign.
string$methodThe request method.
array$parametersArray containing request parameters.
Renvoie:
string The base string.
Depuis:
13.1

Définition à la ligne 442 du fichier client.php.

{
// Sort the parameters alphabetically
uksort($parameters, 'strcmp');
// Encode parameters.
foreach ($parameters as $key => $value)
{
$key = $this->safeEncode($key);
if (is_array($value))
{
foreach ($value as $v)
{
$v = $this->safeEncode($v);
$kv[] = "{$key}={$v}";
}
}
else
{
$value = $this->safeEncode($value);
$kv[] = "{$key}={$value}";
}
}
// Form the parameter string.
$params = implode('&', $kv);
// Signature base string elements.
$base = array(
$method,
$url,
$params
);
// Return the base string.
return implode('&', $this->safeEncode($base));
}
JOAuth1Client::_createHeader (   $parameters)
private

Method used to create the header for the POST request.

Paramètres:
array$parametersArray containing request parameters.
Renvoie:
string The header.
Depuis:
13.1

Définition à la ligne 338 du fichier client.php.

{
$header = 'OAuth ';
foreach ($parameters as $key => $value)
{
if (!strcmp($header, 'OAuth '))
{
$header .= $key . '="' . $this->safeEncode($value) . '"';
}
else
{
$header .= ', ' . $key . '="' . $value . '"';
}
}
return $header;
}
JOAuth1Client::_generateAccessToken ( )
private

Method used to get an access token.

Renvoie:
void
Depuis:
13.1

Définition à la ligne 221 du fichier client.php.

{
// Set the parameters.
$parameters = array(
'oauth_token' => $this->token['key']
);
if (strcmp($this->version, '1.0a') === 0)
{
$parameters = array_merge($parameters, array('oauth_verifier' => $this->token['verifier']));
}
// Make an OAuth request for the Access Token.
$response = $this->oauthRequest($this->getOption('accessTokenURL'), 'POST', $parameters);
parse_str($response->body, $params);
// Save the access token.
$this->token = array('key' => $params['oauth_token'], 'secret' => $params['oauth_token_secret']);
}
JOAuth1Client::_generateRequestToken ( )
private

Method used to get a request token.

Renvoie:
void
Depuis:
13.1
Exceptions:
DomainException

Définition à la ligne 158 du fichier client.php.

Références JFactory\getSession().

{
// Set the callback URL.
if ($this->getOption('callback'))
{
$parameters = array(
'oauth_callback' => $this->getOption('callback')
);
}
else
{
$parameters = array();
}
// Make an OAuth request for the Request Token.
$response = $this->oauthRequest($this->getOption('requestTokenURL'), 'POST', $parameters);
parse_str($response->body, $params);
if (strcmp($this->version, '1.0a') === 0 && strcmp($params['oauth_callback_confirmed'], 'true') !== 0)
{
throw new DomainException('Bad request token!');
}
// Save the request token.
$this->token = array('key' => $params['oauth_token'], 'secret' => $params['oauth_token_secret']);
// Save the request token in session
$session = JFactory::getSession();
$session->set('key', $this->token['key'], 'oauth_token');
$session->set('secret', $this->token['secret'], 'oauth_token');
}

+ Voici le graphe d'appel pour cette fonction :

JOAuth1Client::_prepareSigningKey ( )
private

Prepares the OAuth signing key.

Renvoie:
string The prepared signing key.
Depuis:
13.1

Définition à la ligne 533 du fichier client.php.

{
return $this->safeEncode($this->getOption('consumer_secret')) . '&' . $this->safeEncode(($this->token) ? $this->token['secret'] : '');
}
JOAuth1Client::_signRequest (   $url,
  $method,
  $parameters 
)
private

Method used to sign requests.

Paramètres:
string$urlThe URL to sign.
string$methodThe request method.
array$parametersArray containing request parameters.
Renvoie:
array
Depuis:
13.1

Définition à la ligne 417 du fichier client.php.

{
// Create the signature base string.
$base = $this->_baseString($url, $method, $parameters);
$parameters['oauth_signature'] = $this->safeEncode(
base64_encode(
hash_hmac('sha1', $base, $this->_prepareSigningKey(), true)
)
);
return $parameters;
}
JOAuth1Client::authenticate ( )

Method to for the oauth flow.

Renvoie:
array Contains access token key, secret and verifier.
Depuis:
13.1
Exceptions:
DomainException

Définition à la ligne 86 du fichier client.php.

Références JFactory\getSession().

{
// Already got some credentials stored?
if ($this->token)
{
$response = $this->verifyCredentials();
if ($response)
{
return $this->token;
}
else
{
$this->token = null;
}
}
// Check for callback.
if (strcmp($this->version, '1.0a') === 0)
{
$verifier = $this->input->get('oauth_verifier');
}
else
{
$verifier = $this->input->get('oauth_token');
}
if (empty($verifier))
{
// Generate a request token.
// Authenticate the user and authorise the app.
$this->_authorise();
}
// Callback
else
{
$session = JFactory::getSession();
// Get token form session.
$this->token = array('key' => $session->get('key', null, 'oauth_token'), 'secret' => $session->get('secret', null, 'oauth_token'));
// Verify the returned request token.
if (strcmp($this->token['key'], $this->input->get('oauth_token')) !== 0)
{
throw new DomainException('Bad session!');
}
// Set token verifier for 1.0a.
if (strcmp($this->version, '1.0a') === 0)
{
$this->token['verifier'] = $this->input->get('oauth_verifier');
}
// Generate access token.
// Return the access token.
return $this->token;
}
}

+ Voici le graphe d'appel pour cette fonction :

static JOAuth1Client::generateNonce ( )
static

Method used to generate the current nonce.

Renvoie:
string The current nonce.
Depuis:
13.1

Définition à la ligne 517 du fichier client.php.

{
$mt = microtime();
$rand = mt_rand();
// The md5s look nicer than numbers.
return md5($mt . $rand);
}
JOAuth1Client::getOption (   $key)

Get an option from the JOauth1aClient instance.

Paramètres:
string$keyThe name of the option to get
Renvoie:
mixed The option value
Depuis:
13.1

Définition à la ligne 557 du fichier client.php.

{
return $this->options->get($key);
}
JOAuth1Client::getToken ( )

Get the oauth token key or secret.

Renvoie:
array The oauth token key and secret.
Depuis:
13.1

Définition à la ligne 586 du fichier client.php.

{
return $this->token;
}
JOAuth1Client::oauthRequest (   $url,
  $method,
  $parameters,
  $data = array(),
  $headers = array() 
)

Method used to make an OAuth request.

Paramètres:
string$urlThe request URL.
string$methodThe request method.
array$parametersArray containing request parameters.
mixed$dataThe POST request data.
array$headersAn array of name-value pairs to include in the header of the request
Renvoie:
JHttpResponse
Depuis:
13.1
Exceptions:
DomainException

Définition à la ligne 256 du fichier client.php.

{
// Set the parameters.
$defaults = array(
'oauth_consumer_key' => $this->getOption('consumer_key'),
'oauth_signature_method' => 'HMAC-SHA1',
'oauth_version' => '1.0',
'oauth_nonce' => $this->generateNonce(),
'oauth_timestamp' => time()
);
$parameters = array_merge($parameters, $defaults);
// Do not encode multipart parameters. Do not include $data in the signature if $data is not array.
if (isset($headers['Content-Type']) && strpos($headers['Content-Type'], 'multipart/form-data') !== false || !is_array($data))
{
$oauth_headers = $parameters;
}
else
{
// Use all parameters for the signature.
$oauth_headers = array_merge($parameters, $data);
}
// Sign the request.
$oauth_headers = $this->_signRequest($url, $method, $oauth_headers);
// Get parameters for the Authorisation header.
if (is_array($data))
{
$oauth_headers = array_diff_key($oauth_headers, $data);
}
// Send the request.
switch ($method)
{
case 'GET':
$url = $this->toUrl($url, $data);
$response = $this->client->get($url, array('Authorization' => $this->_createHeader($oauth_headers)));
break;
case 'POST':
$headers = array_merge($headers, array('Authorization' => $this->_createHeader($oauth_headers)));
$response = $this->client->post($url, $data, $headers);
break;
case 'PUT':
$headers = array_merge($headers, array('Authorization' => $this->_createHeader($oauth_headers)));
$response = $this->client->put($url, $data, $headers);
break;
case 'DELETE':
$headers = array_merge($headers, array('Authorization' => $this->_createHeader($oauth_headers)));
$response = $this->client->delete($url, $headers);
break;
}
// Validate the response code.
$this->validateResponse($url, $response);
return $response;
}
JOAuth1Client::safeEncode (   $data)

Encodes the string or array passed in a way compatible with OAuth. If an array is passed each array value will will be encoded.

Paramètres:
mixed$dataThe scalar or array to encode.
Renvoie:
string $data encoded in a way compatible with OAuth.
Depuis:
13.1

Définition à la ligne 490 du fichier client.php.

{
if (is_array($data))
{
return array_map(array($this, 'safeEncode'), $data);
}
elseif (is_scalar($data))
{
return str_ireplace(
array('+', '%7E'),
array(' ', '~'),
rawurlencode($data)
);
}
else
{
return '';
}
}
JOAuth1Client::setOption (   $key,
  $value 
)

Set an option for the JOauth1aClient instance.

Paramètres:
string$keyThe name of the option to set
mixed$valueThe option value to set
Renvoie:
JOAuth1Client This object for method chaining
Depuis:
13.1

Définition à la ligne 572 du fichier client.php.

{
$this->options->set($key, $value);
return $this;
}
JOAuth1Client::setToken (   $token)

Set the oauth token.

Paramètres:
array$tokenThe access token key and secret.
Renvoie:
JOAuth1Client This object for method chaining.
Depuis:
13.1

Définition à la ligne 600 du fichier client.php.

{
$this->token = $token;
return $this;
}
JOAuth1Client::toUrl (   $url,
  $parameters 
)

Method to create the URL formed string with the parameters.

Paramètres:
string$urlThe request URL.
array$parametersArray containing request parameters.
Renvoie:
string The formed URL.
Depuis:
13.1

Définition à la ligne 367 du fichier client.php.

{
foreach ($parameters as $key => $value)
{
if (is_array($value))
{
foreach ($value as $v)
{
if (strpos($url, '?') === false)
{
$url .= '?' . $key . '=' . $v;
}
else
{
$url .= '&' . $key . '=' . $v;
}
}
}
else
{
if (strpos($value, ' ') !== false)
{
$value = $this->safeEncode($value);
}
if (strpos($url, '?') === false)
{
$url .= '?' . $key . '=' . $value;
}
else
{
$url .= '&' . $key . '=' . $value;
}
}
}
return $url;
}
JOAuth1Client::validateResponse (   $url,
  $response 
)
abstract

Method to validate a response.

Paramètres:
string$urlThe request URL.
JHttpResponse$responseThe response to validate.
Renvoie:
void
Depuis:
13.1
Exceptions:
DomainException

Réimplémentée dans JTwitterOAuth, JLinkedinOauth, et JOpenstreetmapOauth.

JOAuth1Client::verifyCredentials ( )
abstract

Returns an HTTP 200 OK response code and a representation of the requesting user if authentication was successful; returns a 401 status code and an error message if not.

Renvoie:
array The decoded JSON response
Depuis:
13.1

Réimplémentée dans JOpenstreetmapOauth, JTwitterOAuth, et JLinkedinOauth.


Documentation des données membres

JOAuth1Client::$application
protected

Définition à la ligne 49 du fichier client.php.

JOAuth1Client::$client
protected

Définition à la ligne 37 du fichier client.php.

JOAuth1Client::$input
protected

Définition à la ligne 43 du fichier client.php.

JOAuth1Client::$options
protected

Réimplémentée dans JOpenstreetmapOauth, JLinkedinOauth, et JTwitterOAuth.

Définition à la ligne 25 du fichier client.php.

JOAuth1Client::$token = array()
protected

Définition à la ligne 31 du fichier client.php.

JOAuth1Client::$version
protected

Définition à la ligne 55 du fichier client.php.


La documentation de cette classe a été générée à partir du fichier suivant :