示例#1
0
 protected function _finish($code, $originalRedirectUri)
 {
     // This endpoint requires "Basic" auth.
     $clientCredentials = $this->appInfo->getKey() . ":" . $this->appInfo->getSecret();
     $authHeaderValue = "Basic " . base64_encode($clientCredentials);
     $response = RequestUtil::doPostWithSpecificAuth($this->clientIdentifier, $authHeaderValue, $this->userLocale, $this->appInfo->getHost()->getApi(), "1/oauth2/token", array("grant_type" => "authorization_code", "code" => $code, "redirect_uri" => $originalRedirectUri));
     if ($response->statusCode !== 200) {
         throw RequestUtil::unexpectedStatus($response);
     }
     $parts = RequestUtil::parseResponseJson($response->body);
     if (!array_key_exists('token_type', $parts) or !is_string($parts['token_type'])) {
         throw new Exception_BadResponse("Missing \"token_type\" field.");
     }
     $tokenType = $parts['token_type'];
     if (!array_key_exists('access_token', $parts) or !is_string($parts['access_token'])) {
         throw new Exception_BadResponse("Missing \"access_token\" field.");
     }
     $accessToken = $parts['access_token'];
     if (!array_key_exists('uid', $parts) or !is_string($parts['uid'])) {
         throw new Exception_BadResponse("Missing \"uid\" string field.");
     }
     $userId = $parts['uid'];
     if ($tokenType !== "Bearer" && $tokenType !== "bearer") {
         throw new Exception_BadResponse("Unknown \"token_type\"; expecting \"Bearer\", got  " . Client::q($tokenType));
     }
     return array($accessToken, $userId);
 }
示例#2
0
 /**
  * Make a Dropbox API call to disable the given OAuth 1 access token.
  *
  * See <a href="https://www.dropbox.com/developers/core/docs#disable-token">/disable_access_token</a>.
  *
  * @param OAuth1AccessToken $oauth1AccessToken
  *
  * @throws Exception
  */
 function disableOAuth1AccessToken($oauth1AccessToken)
 {
     OAuth1AccessToken::checkArg("oauth1AccessToken", $oauth1AccessToken);
     $response = self::doPost($oauth1AccessToken, "1/disable_access_token");
     if ($response->statusCode !== 200) {
         throw RequestUtil::unexpectedStatus($response);
     }
 }
示例#3
0
 /**
  * Moves a file or folder to a new location.
  *
  * See <a href="https://www.dropbox.com/developers/core/docs#fileops-move">/fileops/move</a>.
  *
  * @param string $fromPath
  *    The source Dropbox path (UTF-8).
  *
  * @param string $toPath
  *    The destination Dropbox path (UTF-8).
  *
  * @return mixed
  *    The <a href="https://www.dropbox.com/developers/core/docs#metadata-details">metadata
  *    object</a> for the destination file or folder.
  *
  * @throws Exception
  */
 function move($fromPath, $toPath)
 {
     Path::checkArgNonRoot("fromPath", $fromPath);
     Path::checkArgNonRoot("toPath", $toPath);
     $response = $this->doPost($this->apiHost, "1/fileops/move", array("root" => "auto", "from_path" => $fromPath, "to_path" => $toPath));
     if ($response->statusCode !== 200) {
         throw RequestUtil::unexpectedStatus($response);
     }
     return RequestUtil::parseResponseJson($response->body);
 }
 protected function _finish($code, $originalRedirectUri)
 {
     $url = RequestUtil::buildUri($this->appInfo->getHost()->getApi(), "1/oauth2/token");
     $params = array("grant_type" => "authorization_code", "code" => $code, "redirect_uri" => $originalRedirectUri, "locale" => $this->userLocale);
     $curl = RequestUtil::mkCurlWithoutAuth($this->clientIdentifier, $url);
     // Add Basic auth header.
     $basic_auth = $this->appInfo->getKey() . ":" . $this->appInfo->getSecret();
     $curl->addHeader("Authorization: Basic " . base64_encode($basic_auth));
     $curl->set(CURLOPT_POST, true);
     $curl->set(CURLOPT_POSTFIELDS, RequestUtil::buildPostBody($params));
     $curl->set(CURLOPT_RETURNTRANSFER, true);
     $response = $curl->exec();
     if ($response->statusCode !== 200) {
         throw RequestUtil::unexpectedStatus($response);
     }
     $parts = RequestUtil::parseResponseJson($response->body);
     if (!array_key_exists('token_type', $parts) or !is_string($parts['token_type'])) {
         throw new Exception_BadResponse("Missing \"token_type\" field.");
     }
     $tokenType = $parts['token_type'];
     if (!array_key_exists('access_token', $parts) or !is_string($parts['access_token'])) {
         throw new Exception_BadResponse("Missing \"access_token\" field.");
     }
     $accessToken = $parts['access_token'];
     if (!array_key_exists('uid', $parts) or !is_string($parts['uid'])) {
         throw new Exception_BadResponse("Missing \"uid\" string field.");
     }
     $userId = $parts['uid'];
     if ($tokenType !== "Bearer" && $tokenType !== "bearer") {
         throw new Exception_BadResponse("Unknown \"token_type\"; expecting \"Bearer\", got  " . Client::q($tokenType));
     }
     return array($accessToken, $userId);
 }