/** * Given a URL return an OAuth signed URL. This will handle creating a timestamp and nonce * * @param string $url the unsigned url * @param string $method request method GET, POST, PUT, DELETE * @param string $key oauth key * @param string $secret oauth secret * @param array $params querystring or post parameters * @param string $body the body contents of the request * @param string $signature_method method used for signature (default = 'HMAC_SHA1') */ public static function SignUrl($url, $method, $key, $secret, $params = null, $body = null, $signature_method = 'HMAC_SHA1') { $options = array('consumer_key' => $key, 'consumer_secret' => $secret); $params = $params ? $params : array(); OAuthStore::instance("2Leg", $options); // Obtain a request object for the request we want to make $request = new OAuthRequester($url, $method, $params, $body); $sig = $request->sign($key, null, ''); $data = $request->signatureBaseString(); $url = substr(urldecode($data . '&oauth_signature=' . $request->calculateDataSignature($data, $secret, '', $signature_method)), strlen($method) + 1); $url = VerySimpleStringUtil::ReplaceFirst('&', '?', $url); return $url; }