docs: public static BoxAPIConnection getTransactionConnection(String accessToken, String scope, String resource) {
          BoxAPIConnection apiConnection = new BoxAPIConnection(accessToken);
  
          URL url;
          try {
              url = new URL(apiConnection.getTokenURL());
          } catch (MalformedURLException e) {
              assert false : "An invalid token URL indicates a bug in the SDK.";
              throw new RuntimeException("An invalid token URL indicates a bug in the SDK.", e);
          }
  
          String urlParameters;
          try {
              urlParameters = String.format("grant_type=%s&subject_token=%s&subject_token_type=%s&scope=%s", GRANT_TYPE,
                      URLEncoder.encode(accessToken, "UTF-8"), SUBJECT_TOKEN_TYPE, URLEncoder.encode(scope, "UTF-8"));
  
              if (resource != null) {
                  urlParameters += "&resource=" + URLEncoder.encode(resource, "UTF-8");
              }
          } catch (UnsupportedEncodingException e) {
              throw new BoxAPIException(
                      "An error occurred while attempting to encode url parameters for a transactional token request"
              );
          }
  
          BoxAPIRequest request = new BoxAPIRequest(apiConnection, url, "POST");
          request.shouldAuthenticate(false);
          request.setBody(urlParameters);
  
          BoxJSONResponse response = (BoxJSONResponse) request.send();
          JsonObject responseJSON = JsonObject.readFrom(response.getJSON());
  
          final String fileToken = responseJSON.get("access_token").asString();
          BoxTransactionalAPIConnection transactionConnection = new BoxTransactionalAPIConnection(fileToken);
          transactionConnection.setExpires(responseJSON.get("expires_in").asLong() * 1000);
  
          return transactionConnection;
      }