code: @Override
      public String authorize(Request request) {
          if (deprecatedRequest != null) {
              throw new IllegalStateException("Must create this instance using DbxWebAuth(DbxRequestConfig,DbxAppInfo) to call this method.");
          }
  
          this.codeVerifier = generateCodeVerifier();
  
          Map<String, String> pkceParams = new HashMap<String, String>();
          pkceParams.put("code_challenge", this.generateCodeChallenge(this.codeVerifier));
          pkceParams.put("code_challenge_method", CODE_CHALLENGE_METHODS);
  
          return authorizeImpl(request, pkceParams);
      }
docs: Starts authorization and returns an "authorization URL" on the Dropbox website that let
  the user grant your app access to their Dropbox account.
  
  <p> If a redirect URI was specified ({@link Request.Builder#withRedirectUri}). The
  redirect URI should bring user back to your app on end device. Call {@link
  #finishFromRedirect} using the same {@link DbxPKCEWebAuth} instance with the query
  parameters received from the redirect.
  
  <p> If no redirect URI was specified ({@link Request.Builder#withNoRedirect}), then users who
  grant access will be shown an "authorization code". The user must copy/paste the
  authorization code back into your app, at which point you can call {@link
  #finishFromCode(String)} with the same {@link DbxPKCEWebAuth} instance from to get an access
  token.
  
  @param request OAuth 2.0 web-based authorization flow request configuration
  
  @return Authorization URL of website user can use to authorize your app.