/** * Compute an OAuth HMAC-SHA1 signature * @param string $http_method GET, POST, etc. * @param string $url * @param array $params an array of query parameters for the request * @param string $consumer_secret * @param string $token_secret * @return string a base64_encoded hmac-sha1 signature * @see http://oauth.net/core/1.0/#rfc.section.A.5.1 */ function oauth_compute_hmac_sig($http_method, $url, $params, $consumer_secret, $token_secret) { $base_string = signature_base_string($http_method, $url, $params); $signature_key = rfc3986_encode($consumer_secret) . '&' . rfc3986_encode($token_secret); $sig = base64_encode(hash_hmac('sha1', $base_string, $signature_key, true)); return $sig; }
/** * Compute an OAuth HMAC-SHA1 signature * @param string $http_method GET, POST, etc. * @param string $url * @param array $params an array of query parameters for the request * @param string $consumer_secret * @param string $token_secret * @return string a base64_encoded hmac-sha1 signature * @see http://oauth.net/core/1.0/#rfc.section.A.5.1 */ function oauth_compute_hmac_sig($http_method, $url, $params, $consumer_secret, $token_secret) { global $debug; $base_string = signature_base_string($http_method, $url, $params); $signature_key = rfc3986_encode($consumer_secret) . '&' . rfc3986_encode($token_secret); $sig = base64_encode(hash_hmac('sha1', $base_string, $signature_key, true)); if ($debug) { logit("oauth_compute_hmac_sig:DBG:sig:{$sig}"); } return $sig; }
$temp_array[rawurlencode(key($params))] = rawurlencode(current($params)); next($params); } ksort($temp_array); foreach ($temp_array as $key => $value) { $parameter_string .= '&' . $key . '=' . $value; } return trim($parameter_string, '&'); } $parameter_string = parameter_string($params); function signature_base_string($HTTPMethod, $BaseURL, $parameter_string) { $signature_base_string = $HTTPMethod . '&' . rawurlencode($BaseURL) . '&' . rawurlencode($parameter_string); return $signature_base_string; } $signature_base_string = signature_base_string($HTTPMethod, $BaseURL, $parameter_string); function signing_key($consumer_secret) { return rawurlencode($consumer_secret) . '&'; } $signing_key = signing_key($consumer_secret); $oauth_signature = base64_encode(hash_hmac('SHA1', $signature_base_string, $signing_key, true)); $header[] = 'Authorization: OAuth ' . 'oauth_callback="' . rawurlencode($oauth_callback) . '", ' . 'oauth_consumer_key="' . rawurlencode($oauth_consumer_key) . '", ' . 'oauth_nonce="' . rawurlencode($oauth_nonce) . '", ' . 'oauth_signature="' . rawurlencode($oauth_signature) . '", ' . 'oauth_signature_method="' . rawurlencode('HMAC-SHA1') . '", ' . 'oauth_timestamp="' . rawurlencode($oauth_timestamp) . '", ' . 'oauth_token="' . rawurlencode($request_token) . '", ' . 'oauth_version="' . rawurlencode('1.0') . '"'; $options = array(CURLOPT_URL => $url, CURLOPT_HEADER => false, CURLINFO_HEADER_OUT => true, CURLOPT_HTTPHEADER => $header, CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true); $c = curl_init(); $d = curl_setopt_array($c, $options); $response = curl_exec($c); /*echo "Header"; echo $header;*/ echo '<pre>'; print_r($response);