code: function createOAuth2AccessToken($oauth1AccessToken)
      {
          OAuth1AccessToken::checkArg("oauth1AccessToken", $oauth1AccessToken);
  
          $response = self::doPost($oauth1AccessToken, "1/oauth2/token_from_oauth1");
  
          if ($response->statusCode !== 200) throw RequestUtil::unexpectedStatus($response);
  
          $parts = RequestUtil::parseResponseJson($response->body);
  
          if (!array_key_exists('token_type', $parts) || !is_string($parts['token_type'])) {
              throw new Exception_BadResponse("Missing \"token_type\" field.");
          }
          $tokenType = $parts['token_type'];
          if (!array_key_exists('access_token', $parts) || !is_string($parts['access_token'])) {
              throw new Exception_BadResponse("Missing \"access_token\" field.");
          }
          $accessToken = $parts['access_token'];
  
          if ($tokenType !== "Bearer" && $tokenType !== "bearer") {
              throw new Exception_BadResponse("Unknown \"token_type\"; expecting \"Bearer\", got  "
                  . Util::q($tokenType));
          }
  
          return $accessToken;
      }
docs: Given an existing active OAuth 1 access token, make a Dropbox API call to get a new OAuth 2
  access token that represents the same user and app.
  
  See <a href="https://www.dropbox.com/developers/core/docs#oa1-from-oa1">/oauth2/token_from_oauth1</a>.
  
  @param OAuth1AccessToken $oauth1AccessToken
  
  @return string
  The OAuth 2 access token.
  
  @throws Exception