Guida rapida di Java

Le guide rapide spiegano come configurare ed eseguire un'app che chiama una l'API Google Workspace.

Le guide rapide di Google Workspace utilizzano le librerie client API per gestire alcune i dettagli del flusso di autenticazione e autorizzazione. È consigliabile di usare le librerie client per le tue app. Questa guida rapida utilizza un un approccio semplificato per l'autenticazione, appropriato per completamente gestito di Google Cloud. Per un ambiente di produzione, consigliamo di imparare autenticazione e autorizzazione prima del giorno scelta delle credenziali di accesso che siano appropriati per la tua app.

Crea un'applicazione a riga di comando Java che invia richieste all'API Google Vault.

Obiettivi

  • Configurare l'ambiente.
  • Configura il Sample.
  • Esegui l'esempio.

Prerequisiti

  • Un Account Google.

Configura l'ambiente

Per completare questa guida rapida, configura il tuo ambiente.

Abilita l'API

Prima di utilizzare le API di Google, devi attivarle in un progetto Google Cloud. Puoi attivare una o più API in un singolo progetto Google Cloud.
  • Nella console Google Cloud, abilita l'API Google Vault.

    Abilita l'API

Se utilizzi un nuovo progetto Google Cloud per completare questa guida rapida, configura schermata per il consenso OAuth e aggiungiti come utente di test. Se hai già hai completato questo passaggio per il tuo progetto Cloud, passa alla sezione successiva.

  1. Nella console Google Cloud, vai al Menu > API e Servizi > Schermata consenso OAuth.

    Vai alla schermata per il consenso OAuth

  2. In Tipo di utente, seleziona Interno, quindi fai clic su Crea.
  3. Compila il modulo di registrazione dell'app, quindi fai clic su Salva e continua.
  4. Per ora, puoi saltare l'aggiunta di ambiti e fare clic su Salva e continua. In futuro, quando creerai un'app da utilizzare al di fuori del tuo Nell'organizzazione Google Workspace, devi modificare il Tipo di utente in Esterno e poi aggiungi gli ambiti di autorizzazione richiesti dalla tua app.

  5. Esamina il riepilogo della registrazione dell'app. Per apportare modifiche, fai clic su Modifica. Se l'app la registrazione sembra a posto, fai clic su Torna alla Dashboard.

Autorizzare le credenziali per un'applicazione desktop

Per autenticare gli utenti finali e accedere ai dati utente nella tua app, devi: Creare uno o più ID client OAuth 2.0. L'ID client viene utilizzato per identificare singola app ai server OAuth di Google. Se la tua app viene eseguita su più piattaforme, devi creare un ID cliente distinto per ogni piattaforma.
  1. Nella console Google Cloud, vai a Menu > API e Servizi > Credenziali.

    Vai a credenziali

  2. Fai clic su Crea credenziali > ID client OAuth.
  3. Fai clic su Tipo di applicazione > App desktop.
  4. Nel campo Nome, digita un nome per la credenziale. Questo nome viene visualizzato solo nella console Google Cloud.
  5. Fai clic su Crea. Viene visualizzata la schermata di creazione del client OAuth, che mostra il nuovo ID client e il nuovo client secret.
  6. Fai clic su OK. Le credenziali appena create vengono visualizzate nella sezione ID client OAuth 2.0.
  7. Salva il file JSON scaricato come credentials.json e sposta il nella directory di lavoro.

Prepara l'area di lavoro

  1. Nella tua directory di lavoro, crea una nuova struttura di progetto:

    gradle init --type basic
    mkdir -p src/main/java src/main/resources 
    
  2. Nella directory src/main/resources/, copia il file credentials.json scaricati in precedenza.

  3. Apri il file build.gradle predefinito e sostituiscine il contenuto con il codice seguente:

    vault/quickstart/build.gradle
    apply plugin: 'java'
    apply plugin: 'application'
    
    mainClassName = 'Quickstart'
    sourceCompatibility = 11
    targetCompatibility = 11
    version = '1.0'
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        implementation 'com.google.api-client:google-api-client:2.0.0'
        implementation 'com.google.oauth-client:google-oauth-client-jetty:1.34.1'
        implementation 'com.google.apis:google-api-services-vault:v1-rev20220423-2.0.0'
    }
    

Configura l'esempio

  1. Nella directory src/main/java/, crea un nuovo file Java con un nome corrisponde al valore mainClassName nel file build.gradle.

  2. Includi il seguente codice nel nuovo file Java:

    vault/quickstart/src/main/java/Quickstart.java
    import com.google.api.client.auth.oauth2.Credential;
    import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp;
    import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver;
    import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow;
    import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets;
    import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
    import com.google.api.client.http.HttpTransport;
    import com.google.api.client.json.gson.GsonFactory;
    import com.google.api.client.json.JsonFactory;
    import com.google.api.client.util.store.FileDataStoreFactory;
    import com.google.api.services.vault.v1.VaultScopes;
    import com.google.api.services.vault.v1.model.*;
    import com.google.api.services.vault.v1.Vault;
    
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.Arrays;
    import java.util.List;
    
    public class Quickstart {
      /**
       * Application name.
       */
      private static final String APPLICATION_NAME =
          "Google Vault API Java Quickstart";
    
      /**
       * Directory to store authorization tokens for this application.
       */
      private static final java.io.File DATA_STORE_DIR = new java.io.File("tokens");
      /**
       * Global instance of the JSON factory.
       */
      private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance();
      private static final String CREDENTIALS_FILE_PATH = "/credentials.json";
      /**
       * Global instance of the scopes required by this quickstart.
       * <p>
       * If modifying these scopes, delete your previously saved credentials
       * at ~/.credentials/vault.googleapis.com-java-quickstart
       */
      private static final List<String> SCOPES =
          Arrays.asList(VaultScopes.EDISCOVERY_READONLY);
      /**
       * Global instance of the {@link FileDataStoreFactory}.
       */
      private static FileDataStoreFactory DATA_STORE_FACTORY;
      /**
       * Global instance of the HTTP transport.
       */
      private static HttpTransport HTTP_TRANSPORT;
    
      static {
        try {
          HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
          DATA_STORE_FACTORY = new FileDataStoreFactory(DATA_STORE_DIR);
        } catch (Throwable t) {
          t.printStackTrace();
          System.exit(1);
        }
      }
    
      /**
       * Creates an authorized Credential object.
       *
       * @return an authorized Credential object.
       * @throws IOException
       */
      public static Credential authorize() throws IOException {
        // Load client secrets.
        InputStream in =
            Quickstart.class.getResourceAsStream("/credentials.json");
        if (in == null) {
          throw new FileNotFoundException("Resource not found: " + CREDENTIALS_FILE_PATH);
        }
        GoogleClientSecrets clientSecrets =
            GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));
    
        // Build flow and trigger user authorization request.
        GoogleAuthorizationCodeFlow flow =
            new GoogleAuthorizationCodeFlow.Builder(
                HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES)
                .setDataStoreFactory(DATA_STORE_FACTORY)
                .setAccessType("offline")
                .build();
        Credential credential = new AuthorizationCodeInstalledApp(
            flow, new LocalServerReceiver()).authorize("user");
        System.out.println(
            "Credentials saved to " + DATA_STORE_DIR.getAbsolutePath());
        return credential;
      }
    
      /**
       * Build and return an authorized Vault client service.
       *
       * @return an authorized Vault client service
       * @throws IOException
       */
      public static Vault getVaultService() throws IOException {
        Credential credential = authorize();
        return new Vault.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential)
            .setApplicationName(APPLICATION_NAME)
            .build();
      }
    
      public static void main(String[] args) throws IOException {
        // Build a new authorized API client service.
        Vault service = getVaultService();
    
        // List the first 10 matters.
        ListMattersResponse response = service.matters().list()
            .setPageSize(10)
            .execute();
        List<Matter> matters = response.getMatters();
        if (matters == null || matters.size() == 0) {
          System.out.println("No matters found.");
          return;
        }
        System.out.println("Matters:");
        for (Matter matter : matters) {
          System.out.printf("%s (%s)\n", matter.getName(),
              matter.getMatterId());
        }
      }
    }

Esegui l'esempio

  1. Esegui l'esempio:

    gradle run
    
  1. La prima volta che esegui l'esempio, ti verrà chiesto di autorizzare l'accesso:
    1. Se non hai ancora eseguito l'accesso al tuo Account Google, esegui l'accesso quando ti viene richiesto. Se Hai eseguito l'accesso a più account, selezionane uno da utilizzare per l'autorizzazione.
    2. Fai clic su Accept (accetta).

    L'applicazione Java esegue e chiama l'API Google Vault.

    Le informazioni sull'autorizzazione vengono archiviate nel file system, quindi la prossima volta che eseguirai l'esempio non ti viene chiesta l'autorizzazione.

Passaggi successivi