apps/files_external/3rdparty/Dropbox/OAuth/PEAR.php
/**
     * Fetches a secured oauth url and returns the response body. 
     * 
     * @param string $uri 
     * @param mixed $arguments 
     * @param string $method 
     * @param array $httpHeaders 
     * @return string 
     */
Fetches a secured oauth url and returns the response body.


Fetches a secured oauth url and returns the response body .
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()) {
            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()
        );
    }
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 ( ) ) { 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 ( ) ) ; }
Fetches a secured oauth url and returns the response body.
Fetches a secured oauth url and returns the response body .
// Not modified