Api

Version

mediamosa-30

Class

mediamosa_rest_call_oauth_access_token

Code

File: /sites/all/modules/mediamosa/modules/app/oauth/mediamosa_app_oauth.rest.class.inc
<?php

/*
 * URI: /openapi/oauth/access_token
 * Method: GET
 */
class mediamosa_rest_call_oauth_access_token extends mediamosa_rest_call {
  
// ------------------------------------------------------------------ Consts.
  // Rest vars;
  
const OAUTH_CONSUMER_KEY 'oauth_consumer_key';
  const 
OAUTH_SIGNATURE_METHOD 'oauth_signature_method';
  const 
OAUTH_SIGNATURE_METHOD_HMAC_SHA1 'HMAC-SHA1';
  const 
OAUTH_SIGNATURE_METHOD_PLAINTEXT 'PLAINTEXT';
  const 
OAUTH_SIGNATURE_METHOD_RSA_SHA1 'RSA-SHA1';
  const 
OAUTH_TIMESTAMP 'oauth_timestamp';
  const 
OAUTH_NONCE 'oauth_nonce';
  const 
OAUTH_SIGNATURE 'oauth_signature';
  const 
OAUTH_VERSION 'oauth_version';
  const 
OAUTH_VERSION_10 '1.0';
  const 
OAUTH_TOKEN 'oauth_token';
  const 
OAUTH_VERIFIER 'oauth_verifier';
  
// TODO: Do we implement "oauth_session_handle"?
  // The Yahoo doc uses this parameter, but not others.
  // http://developer.yahoo.com/oauth/guide/oauth-auth-flow.html

  // ------------------------------------------------------------------ Functions (public).
  
public function get_var_setup() {
    
$var_setup = array(
      
self::VARS => array(
        
self::OAUTH_CONSUMER_KEY => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_ALPHA_NUM,
          
self::VAR_DESCRIPTION => 'The identifier portion of the client credentials (equivalent to a username).',
          
self::VAR_IS_REQUIRED => self::VAR_IS_REQUIRED_YES,
        ),
        
self::OAUTH_SIGNATURE_METHOD => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_OAUTH_SIGNATURE_METHOD,
          
self::VAR_DESCRIPTION => 'The name of the signature method used by the client to sign the request.',
          
self::VAR_IS_REQUIRED => self::VAR_IS_REQUIRED_YES,
          
self::VAR_ALLOWED_VALUES => array(
            
self::OAUTH_SIGNATURE_METHOD_HMAC_SHA1,
            
self::OAUTH_SIGNATURE_METHOD_PLAINTEXT,
            
// TODO: implement RSA?
            //self::OAUTH_SIGNATURE_METHOD_RSA_SHA1,
          
),
          
//self::VAR_DEFAULT_VALUE => self::OAUTH_SIGNATURE_METHOD_HMAC_SHA1,
        
),
        
self::OAUTH_TIMESTAMP => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_INT,
          
self::VAR_DESCRIPTION => 'The timestamp.',
          
self::VAR_IS_REQUIRED => self::VAR_IS_REQUIRED_YES,
          
self::VAR_RANGE_START => 0,
        ),
        
self::OAUTH_NONCE => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_ALPHA_NUM,
          
self::VAR_DESCRIPTION => 'A nonce is a random string, uniquely generated by the client to allow the server to verify that a request has never been made before and helps prevent replay attacks when requests are made over a non-secure channel.',
          
self::VAR_IS_REQUIRED => self::VAR_IS_REQUIRED_YES,
        ),
        
self::OAUTH_SIGNATURE => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_OAUTH_SIGNATURE,
          
self::VAR_DESCRIPTION => 'A password portion of the client credentials encoded by the given signature method.',
          
self::VAR_IS_REQUIRED => self::VAR_IS_REQUIRED_YES,
        ),
        
self::OAUTH_VERSION => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_OAUTH_VERSION,
          
self::VAR_DESCRIPTION => 'Provides the version of the authentication process.',
          
self::VAR_IS_REQUIRED => self::VAR_IS_REQUIRED_NO,
          
self::VAR_ALLOWED_VALUES => array(
            
self::OAUTH_VERSION_10,
          ),
          
self::VAR_DEFAULT_VALUE => self::OAUTH_VERSION_10,
        ),
        
self::OAUTH_TOKEN => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_OAUTH_TOKEN,
          
self::VAR_DESCRIPTION => 'The token identifier.',
          
self::VAR_IS_REQUIRED => self::VAR_IS_REQUIRED_YES,
        ),
        
self::OAUTH_VERIFIER => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_OAUTH_VERIFIER,
          
self::VAR_DESCRIPTION => 'The verification code.',
          
self::VAR_IS_REQUIRED => self::VAR_IS_REQUIRED_NO,
        ),
      )
    );

    
// Enrich with required REST vars.
    
return self::get_var_setup_default($var_setupFALSE);
  }

  
// ------------------------------------------------------------------ Do Call.
  
public function do_call() {
    
$mediamosa mediamosa::get();

    
// Get params.
    
$oauth_consumer_key $this->get_param_value(self::OAUTH_CONSUMER_KEY);
    
$oauth_signature_method $this->get_param_value(self::OAUTH_SIGNATURE_METHOD);
    
$oauth_timestamp $this->get_param_value(self::OAUTH_TIMESTAMP);
    
$oauth_nonce $this->get_param_value(self::OAUTH_NONCE);
    
$oauth_signature $this->get_param_value(self::OAUTH_SIGNATURE);
    
$oauth_version $this->get_param_value(self::OAUTH_VERSION);
    
$oauth_token $this->get_param_value(self::OAUTH_TOKEN);
    
$oauth_verifier $this->get_param_value(self::OAUTH_VERIFIER);

    
$oauth_server mediamosa_app_oauth::create_server();

    
$req OAuthRequest::from_request();
    
$token $oauth_server->fetch_access_token($req);

    
$mediamosa->add_item($token);
  }
}