File manager - Edit - /home/verseaumee/middletvnew/wp-content/plugins/armember/lib/tumblr/tumblroauth.php
Back
<?php /** * Tumblr OAuth class */ require 'OAuth.php'; class TumblrOAuth { protected $auth_response = []; protected $params = []; protected $parts = ''; protected $method = ''; protected $tumblr_consumer_key = ''; protected $tumblr_consumer_secret = ''; /** * Set API URLS */ function authenticateURL() { return 'https://api.tumblr.com/v2/user/info'; } function accessTokenURL() { return 'https://www.tumblr.com/oauth/access_token'; } function requestTokenURL() { return 'https://www.tumblr.com/oauth/request_token'; } function SignatureMethod() { return 'HMAC-SHA1';} /** * construct TumblrOAuth object */ function __construct( $consumer_key, $consumer_secret ) { $this->tumblr_consumer_key = $consumer_key; $this->tumblr_consumer_secret = $consumer_secret; } function Request_Token( $callback_url ) { $this->parts = $this->requestTokenURL(); $oauth_nonce = $this->OAuthNonce(); $oauth_version = $this->OAuthVersion(); $signature_method = $this->SignatureMethod(); $method = $this->HttpMethod(); $this->method = $method; $url = $this->requestTokenURL(); $token= ""; $consumer=array( "key"=>$this->tumblr_consumer_key, "secret" => $this->tumblr_consumer_secret, ); $this->params = array( 'oauth_version' => $oauth_version, 'oauth_nonce' => $oauth_nonce, 'oauth_timestamp' =>time(), 'oauth_consumer_key' => $this->tumblr_consumer_key, 'oauth_callback' => $callback_url, 'oauth_signature_method' => $signature_method, ); $iparams['oauth_version'] = '"'.$oauth_version .'"'; $iparams['oauth_nonce'] = '"'.$oauth_nonce.'"'; $iparams['oauth_timestamp'] ='"'.time().'"'; $iparams['oauth_consumer_key'] = '"'.$this->tumblr_consumer_key.'"'; $iparams['oauth_callback'] = '"'.$this->urlencode_rfc3986( $callback_url).'"'; $iparams['oauth_signature_method'] = '"'.$signature_method.'"' ; $iparams['oauth_signature'] = '"'.$this->urlencode_rfc3986( $this->build_signature( $consumer, $token ) ).'"'; $headers = $this->Build_Header($iparams); $parameters = array( 'oauth_callback' => $callback_url ); $response= $this->curl_call($url, $method , $parameters , $headers); parse_str($response,$this->auth_response); return $this->auth_response; } function getAccessToken( $consumer_token,$consumer_token_secret,$oauth_verifier ) { $this->parts = $this->accessTokenURL(); $oauth_nonce = $this->OAuthNonce(); $oauth_version = $this->OAuthVersion(); $signature_method = $this->SignatureMethod(); $method = $this->HttpMethod(); $this->method = $method; $url = $this->accessTokenURL(); $this->params = array( 'oauth_version' => $oauth_version, 'oauth_nonce' => $oauth_nonce, 'oauth_timestamp' =>time(), 'oauth_consumer_key' => $this->tumblr_consumer_key, 'oauth_token' => $consumer_token, 'oauth_verifier' => $oauth_verifier, 'oauth_signature_method' => $signature_method, ); $token=array( "key"=>$consumer_token, "secret" => $consumer_token_secret, ); $consumer=array( "key"=>$this->tumblr_consumer_key, "secret" => $this->tumblr_consumer_secret, ); $iparams['oauth_version'] = '"'.$oauth_version .'"'; $iparams['oauth_nonce'] = '"'.$oauth_nonce.'"'; $iparams['oauth_timestamp'] ='"'.time().'"'; $iparams['oauth_consumer_key'] = '"'.$this->tumblr_consumer_key.'"'; $iparams['oauth_token']= '"'.$consumer_token.'"'; $iparams['oauth_verifier']= '"'.$oauth_verifier.'"'; $iparams['oauth_signature_method'] = '"'.$signature_method.'"' ; $iparams['oauth_signature'] = '"'.$this->urlencode_rfc3986($this->build_signature( $consumer, $token)).'"'; $headers = $this->Build_Header($iparams); $parameters = array( 'oauth_token'=> $consumer_token, 'oauth_verifier' => $oauth_verifier ); $response = $this->curl_call($url, $method , $parameters , $headers); parse_str( $response,$this->auth_response ); return $this->auth_response; } function get( $consumer_token , $consumer_token_secret ) { $method = 'GET'; $this->method = $method; $this->parts = $this->authenticateURL(); $oauth_nonce = $this->OAuthNonce(); $oauth_version = $this->OAuthVersion(); $signature_method = $this->SignatureMethod(); $url = $this->authenticateURL(); $this->params = array( 'oauth_version' => $oauth_version, 'oauth_nonce' => $oauth_nonce, 'oauth_timestamp' =>time(), 'oauth_consumer_key' => $this->tumblr_consumer_key, 'oauth_token' => $consumer_token, 'oauth_signature_method' => $signature_method, ); $token = array( "key" => $consumer_token, "secret" => $consumer_token_secret, "call_back_url" =>"", ); $consumer = array( "key" => $this->tumblr_consumer_key, "secret" => $this->tumblr_consumer_secret, "call_back_url" =>"", ); $iparams['oauth_version'] = '"'.$oauth_version .'"'; $iparams['oauth_nonce'] = '"'.$oauth_nonce.'"'; $iparams['oauth_timestamp'] ='"'.time().'"'; $iparams['oauth_consumer_key'] = '"'.$this->tumblr_consumer_key.'"'; $iparams['oauth_token'] = '"'.$consumer_token.'"'; $iparams['oauth_signature_method'] = '"'.$signature_method.'"' ; $iparams['oauth_signature'] = '"'.$this->urlencode_rfc3986( $this->build_signature( $consumer, $token) ).'"'; $headers = $this->Build_Header( $iparams ); $parameters =array(); return json_decode( $this->curl_call( $url, $method , $parameters , $headers ) ); } function curl_call( $url, $method , $parameters , $headers){ $curl = new Curl(); $response= $curl->request( $url, $method , $parameters , $headers ); return $response; } /* Build Header */ function Build_Header( $iparams ) { $oauth_header = array(); foreach( $iparams as $key => $value ) { if ( strpos($key, "oauth") !== false ) { $oauth_header []= $key ."=".$value; } } $oauth_header = "OAuth ". implode( ",", $oauth_header ); $headers["Authorization"] = $oauth_header; return $headers; } /* Set API METHOD */ function HttpMethod() { return 'POST'; } /* Set Version */ function OAuthVersion() { return '1.0'; } /* set oAuthNonce */ function OAuthNonce() { return md5( microtime().mt_rand() ); } function urlencode_rfc3986($input) { if( is_array( $input ) ) { return array_map( array( $this,'urlencode_rfc3986' ),$input ); } elseif ( is_scalar( $input )) { return str_replace('+', ' ', str_replace( '%7E', '~', rawurlencode( $input ) ) ); } else { return ''; } } function urldecode_rfc3986( $string ) { return $this->urldecode( $string ); } function build_signature( $consumer, $token) { $base_string = $this->get_signature_base_string(); $key_parts = array( $consumer['secret'], $token ? $token['secret'] : '' ); $key_parts =$this->urlencode_rfc3986( $key_parts ); $key = implode( '&', $key_parts ); return base64_encode( hash_hmac( 'sha1', $base_string, $key, true ) ); } function get_signature_base_string() { $parts = array( $this->get_normalized_http_method(), $this->get_normalized_http_url(), $this->get_signable_parameters() ); $parts = $this->urlencode_rfc3986( $parts) ; return implode( '&', $parts ); } function get_normalized_http_method() { return strtoupper( $this->method ); } function get_normalized_http_url() { $parts = parse_url( $this->parts ); $scheme = ( isset( $parts['scheme'] ) ) ? $parts['scheme'] : 'http'; $port = ( isset( $parts['port'] ) ) ? $parts['port'] : ( ( $scheme == 'https' ) ? '443' : '80' ); $host = ( isset( $parts['host'] ) ) ? strtolower($parts['host'] ) : ''; $path = ( isset( $parts['path'] ) ) ? $parts['path'] : ''; if ( ( $scheme == 'https' && $port != '443' ) || ( $scheme == 'http' && $port != '80' ) ) { $host = "$host:$port"; } return "$scheme://$host$path"; } function get_signable_parameters() { // Grab all parameters $params= $this->params; // Remove oauth_signature if present // Ref: Spec: 9.1.1 ("The oauth_signature parameter MUST be excluded.") if ( isset($params['oauth_signature'] ) ) { unset($params['oauth_signature']); } return $this->build_http_query( $params ); } function build_http_query( $params ) { if ( !$params ) { return ''; } // Urlencode both keys and values $keys = $this->urlencode_rfc3986( array_keys( $params ) ); $values = $this->urlencode_rfc3986( array_values( $params ) ); $params = array_combine( $keys, $values ); // Parameters are sorted by name, using lexicographical byte value ordering. // Ref: Spec: 9.1.1 (1) uksort( $params, 'strcmp' ); $pairs = array(); foreach ( $params as $parameter => $value ) { if( is_array( $value ) ) { // If two or more parameters share the same name, they are sorted by their value // Ref: Spec: 9.1.1 (1) // June 12th, 2010 - changed to sort because of issue 164 by hidetaka sort( $value, SORT_STRING ); foreach( $value as $duplicate_value ) { $pairs[] = $parameter . '=' . $duplicate_value; } } else { $pairs[] = $parameter . '=' . $value; } } // For each parameter, the name is separated from the corresponding value by an '=' character (ASCII code 61) // Each name-value pair is separated by an '&' character (ASCII code 38) return implode( '&', $pairs ); } }
| ver. 1.4 |
Github
|
.
| PHP 8.5.7 | Generation time: 0 |
proxy
|
phpinfo
|
Settings