예제 #1
0
 /**
  * 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());
     }
 }
예제 #2
0
 /**
  * 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());
         }
     }
 }