/** * Format and sign an OAuth / API request */ function oAuthRequest($url, $method, $parameters) { if (strrpos($url, 'https://') !== 0 && strrpos($url, 'http://') !== 0) { $url = "{$this->host}{$url}.{$this->format}"; } $request = OAuthRequest::from_consumer_and_token($this->consumer, $this->token, $method, $url, $parameters); $request->sign_request($this->sha1_method, $this->consumer, $this->token); switch ($method) { case 'GET': return $this->http($request->to_url(), 'GET'); default: return $this->http($request->get_normalized_http_url(), $method, $request->to_postdata()); } }
/** * Efetua uma chamada a um método API * * @param verbo string GET, POST, PUT ou DELETE, conforme o método/intenção * @param metodo string path do métdodo, sem "/" no começo (ex.: "users/self") * @param params mixed parâmetros da chamada (array associativo) * @param oauth_token string token de autorização do usuário. Se omitido, a chamada usa HTTP Basic Auth * @param oauth_token_secret string secret do token de autorização do usuário (ignorado se oauth_token não for passado) * @return resultado da chamada. */ function apontadorChamaApi($verbo = "GET", $metodo = "", $params = array(), $oauth_token = "", $oauth_token_secret = "") { extract($this->config); $params['type'] = 'json'; $key = $consumerKey; $secret = $consumerSecret; $endpoint = APONTADOR_URL . $metodo; if (!$oauth_token) { $queryparams = http_build_query($params); $auth_hash = base64_encode("{$key}:{$secret}"); return $this->_post("{$endpoint}?{$queryparams}", "GET", null, "Authorization: {$auth_hash}"); } else { // OAuth $consumer = new OAuthConsumer($key, $secret, NULL); $token = new OAuthConsumer($oauth_token, $oauth_token_secret); $signature_method = new OAuthSignatureMethod_HMAC_SHA1(); $req_req = OAuthRequest::from_consumer_and_token($consumer, $token, $verbo, $endpoint, $params); $req_req->sign_request($signature_method, $consumer, $token); //echo $req_req; if ($verbo == "GET") { return $this->_post($req_req, $verbo); } else { return $this->_post($endpoint, $verbo, $req_req->to_postdata()); } } }