/**
  * Fetches a secured oauth url and returns the response body. 
  * 
  * @param string $uri 
  * @param mixed $arguments 
  * @param string $method 
  * @param array $httpHeaders 
  * @return string 
  */
 public function fetch($uri, $arguments = array(), $method = 'GET', $httpHeaders = array())
 {
     $consumerRequest = new HTTP_OAuth_Consumer_Request();
     $consumerRequest->setUrl($uri);
     $consumerRequest->setMethod($method);
     $consumerRequest->setSecrets($this->OAuth->getSecrets());
     $parameters = array('oauth_consumer_key' => $this->consumerKey, 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_token' => $this->oauth_token);
     if (is_array($arguments)) {
         $parameters = array_merge($parameters, $arguments);
     } elseif (is_string($arguments)) {
         $consumerRequest->setBody($arguments);
     }
     $consumerRequest->setParameters($parameters);
     if (count($httpHeaders)) {
         foreach ($httpHeaders as $k => $v) {
             $consumerRequest->setHeader($k, $v);
         }
     }
     $response = $consumerRequest->send();
     switch ($response->getStatus()) {
         // Not modified
         case 304:
             return array('httpStatus' => 304, 'body' => null);
             break;
         case 403:
             throw new Dropbox_Exception_Forbidden('Forbidden. This could mean a bad OAuth request, or a file or folder already existing at the target location.');
         case 404:
             throw new Dropbox_Exception_NotFound('Resource at uri: ' . $uri . ' could not be found');
         case 507:
             throw new Dropbox_Exception_OverQuota('This dropbox is full');
     }
     return array('httpStatus' => $response->getStatus(), 'body' => $response->getBody());
 }
Exemplo n.º 2
0
 /**
  * Fetches a secured oauth url and returns the response body. 
  * 
  * @param string $uri 
  * @param mixed $arguments 
  * @param string $method 
  * @param array $httpHeaders 
  * @return string 
  */
 public function fetch($uri, $arguments = array(), $method = 'GET', $httpHeaders = array())
 {
     $httpRequest = new HTTP_Request2(null, HTTP_Request2::METHOD_GET, array('ssl_verify_peer' => false, 'ssl_verify_host' => false));
     $consumerRequest = new HTTP_OAuth_Consumer_Request();
     $consumerRequest->accept($httpRequest);
     $consumerRequest->setUrl($uri);
     $consumerRequest->setMethod($method);
     $consumerRequest->setSecrets($this->OAuth->getSecrets());
     $parameters = array('oauth_consumer_key' => $this->consumerKey, 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_token' => $this->oauth_token);
     if (is_array($arguments)) {
         $parameters = array_merge($parameters, $arguments);
     } elseif (is_string($arguments)) {
         $consumerRequest->setBody($arguments);
     }
     $consumerRequest->setParameters($parameters);
     if (count($httpHeaders)) {
         foreach ($httpHeaders as $k => $v) {
             $consumerRequest->setHeader($k, $v);
         }
     }
     $response = $consumerRequest->send();
     switch ($response->getStatus()) {
         // Not modified
         case 304:
             return array('httpStatus' => 304, 'body' => null);
             break;
         case 400:
             throw new Dropbox_Exception_Forbidden('Forbidden. Bad input parameter. Error message should indicate which one and why.');
         case 401:
             throw new Dropbox_Exception_Forbidden('Forbidden. Bad or expired token. This can happen if the user or Dropbox revoked or expired an access token. To fix, you should re-authenticate the user.');
         case 403:
             throw new Dropbox_Exception_Forbidden('Forbidden. This could mean a bad OAuth request, or a file or folder already existing at the target location.');
         case 404:
             throw new Dropbox_Exception_NotFound('Resource at uri: ' . $uri . ' could not be found');
         case 405:
             throw new Dropbox_Exception_Forbidden('Forbidden. Request method not expected (generally should be GET or POST).');
         case 500:
             throw new Dropbox_Exception_Forbidden('Server error. ' . $e->getMessage());
         case 503:
             throw new Dropbox_Exception_Forbidden('Forbidden. Your app is making too many requests and is being rate limited. 503s can trigger on a per-app or per-user basis.');
         case 507:
             throw new Dropbox_Exception_OverQuota('This dropbox is full');
     }
     return array('httpStatus' => $response->getStatus(), 'body' => $response->getBody());
 }