123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- <?php
- /**
- * Dropbox OAuth
- *
- * @package Dropbox
- * @copyright Copyright (C) 2010 Rooftop Solutions. All rights reserved.
- * @author Evert Pot (http://www.rooftopsolutions.nl/)
- * @license http://code.google.com/p/dropbox-php/wiki/License MIT
- */
- /**
- * This class is an abstract OAuth class.
- *
- * It must be extended by classes who wish to provide OAuth functionality
- * using different libraries.
- */
- abstract class Dropbox_OAuth {
- /**
- * After a user has authorized access, dropbox can redirect the user back
- * to this url.
- *
- * @var string
- */
- public $authorizeCallbackUrl = null;
-
- /**
- * Uri used to fetch request tokens
- *
- * @var string
- */
- const URI_REQUEST_TOKEN = 'https://api.dropbox.com/1/oauth/request_token';
- /**
- * Uri used to redirect the user to for authorization.
- *
- * @var string
- */
- const URI_AUTHORIZE = 'https://www.dropbox.com/1/oauth/authorize';
- /**
- * Uri used to
- *
- * @var string
- */
- const URI_ACCESS_TOKEN = 'https://api.dropbox.com/1/oauth/access_token';
- /**
- * An OAuth request token.
- *
- * @var string
- */
- protected $oauth_token = null;
- /**
- * OAuth token secret
- *
- * @var string
- */
- protected $oauth_token_secret = null;
- /**
- * Constructor
- *
- * @param string $consumerKey
- * @param string $consumerSecret
- */
- abstract public function __construct($consumerKey, $consumerSecret);
- /**
- * Sets the request token and secret.
- *
- * The tokens can also be passed as an array into the first argument.
- * The array must have the elements token and token_secret.
- *
- * @param string|array $token
- * @param string $token_secret
- * @return void
- */
- public function setToken($token, $token_secret = null) {
- if (is_array($token)) {
- $this->oauth_token = $token['token'];
- $this->oauth_token_secret = $token['token_secret'];
- } else {
- $this->oauth_token = $token;
- $this->oauth_token_secret = $token_secret;
- }
- }
- /**
- * Returns the oauth request tokens as an associative array.
- *
- * The array will contain the elements 'token' and 'token_secret'.
- *
- * @return array
- */
- public function getToken() {
- return array(
- 'token' => $this->oauth_token,
- 'token_secret' => $this->oauth_token_secret,
- );
- }
- /**
- * Returns the authorization url
- *
- * @param string $callBack Specify a callback url to automatically redirect the user back
- * @return string
- */
- public function getAuthorizeUrl($callBack = null) {
-
- // Building the redirect uri
- $token = $this->getToken();
- $uri = self::URI_AUTHORIZE . '?oauth_token=' . $token['token'];
- if ($callBack) $uri.='&oauth_callback=' . $callBack;
- return $uri;
- }
- /**
- * 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 abstract function fetch($uri, $arguments = array(), $method = 'GET', $httpHeaders = array());
- /**
- * Requests the OAuth request token.
- *
- * @return array
- */
- abstract public function getRequestToken();
- /**
- * Requests the OAuth access tokens.
- *
- * @return array
- */
- abstract public function getAccessToken();
- }
|