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 all'autenticazione semplificato, appropriato per gli ambienti di test 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 Keep.

Obiettivi

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

Prerequisiti

  • Un Account Google con Google Keep attivo.

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 Keep.

    Abilita l'API

Crea un account di servizio

Un account di servizio è un particolare tipo di account usato da un'applicazione, piuttosto che di una persona. Puoi utilizzare un account di servizio per accedere ai dati o eseguire azioni dall'account robot o per accedere ai dati per conto di Google Workspace o utenti di Cloud Identity. Per ulteriori informazioni, vedi Informazioni sugli account di servizio.

Console Google Cloud

  1. Nella console Google Cloud, vai al Menu > IAM e Amministratore > Account di servizio.

    Vai a Service account

  2. Fai clic su Crea account di servizio.
  3. Inserisci i dettagli dell'account di servizio, quindi fai clic su Crea e continua.
  4. (Facoltativo) Assegna ruoli all'account di servizio per concedere l'accesso alle risorse del progetto Google Cloud. Per maggiori dettagli, consulta Concessione, modifica e revoca dell'accesso alle risorse.
  5. Fai clic su Continua.
  6. (Facoltativo) Inserisci gli utenti o i gruppi che possono gestire ed eseguire azioni con questo account di servizio. Per ulteriori dettagli, consulta Gestire il furto d'identità degli account di servizio.
  7. Fai clic su Fine. Prendi nota dell'indirizzo email dell'account di servizio.

Interfaccia a riga di comando gcloud

  1. Crea l'account di servizio:
    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
      --display-name="SERVICE_ACCOUNT_NAME"
  2. (Facoltativo) Assegna ruoli all'account di servizio per concedere l'accesso alle risorse del progetto Google Cloud. Per maggiori dettagli, consulta Concessione, modifica e revoca dell'accesso alle risorse.

Crea le credenziali per un account di servizio

Devi ottenere le credenziali sotto forma di coppia di chiavi pubblica/privata. Questi le credenziali vengono utilizzate dal codice per autorizzare le azioni dell'account di servizio all'interno la tua app.
  1. Nella console Google Cloud, vai al Menu > IAM e Amministratore > Account di servizio.

    Vai a Service account

  2. Seleziona il tuo account di servizio.
  3. Fai clic su Chiavi > Aggiungi chiave > Crea nuova chiave.
  4. Seleziona JSON, quindi fai clic su Crea.

    La nuova coppia di chiavi pubblica/privata viene generata e scaricata sul come un nuovo file. Salva il file JSON scaricato come credentials.json nel nella directory di lavoro. Questo file è l'unica copia di questa chiave. Per informazioni su come archiviare la chiave in modo sicuro, vedi Gestione delle chiavi degli account di servizio.

  5. Fai clic su Chiudi.

Configura la delega a livello di dominio per un account di servizio

Per chiamare le API per conto degli utenti di un'organizzazione Google Workspace: all'account di servizio deve essere concessa la delega dell'autorità a livello di dominio alla Console di amministrazione Google Workspace da un account super amministratore. Per maggiori informazioni le informazioni, vedi Delegare l'autorità a livello di dominio a un account di servizio.
  1. Nella console Google Cloud, vai al Menu > IAM e Amministratore > Account di servizio.

    Vai a Service account

  2. Seleziona il tuo account di servizio.
  3. Fai clic su Mostra impostazioni avanzate.
  4. Nella sezione "Delega a livello di dominio", cerca l'"ID client" del tuo account di servizio. Fai clic su Copia per copiare il valore dell'ID client negli appunti.
  5. Se disponi dell'accesso come super amministratore all'account Google Workspace pertinente, fai clic su Visualizza la Console di amministrazione Google Workspace, quindi accedi utilizzando un utente super amministratore dell'account di servizio e continua a seguire questa procedura.

    Se non disponi dell'accesso come super amministratore all'account Google Workspace pertinente, contatta un super amministratore dell'account e inviagli l'ID client del tuo account di servizio e l'elenco degli ambiti OAuth, in modo che possano completare i passaggi seguenti nella Console di amministrazione.

    1. Nella Console di amministrazione Google, vai al Menu . > Sicurezza > Accesso e controllo dei dati > Controlli API.

      Vai ai controlli API

    2. Fai clic su Gestisci delega a livello di dominio.
    3. Fai clic su Aggiungi nuovo.
    4. Nel "Client ID" (ID cliente) incolla l'ID client copiato in precedenza.
    5. Nella sezione "Ambiti OAuth" inserisci un elenco delimitato da virgole degli ambiti richiesti dalla tua applicazione. Si tratta dello stesso insieme di ambiti che hai definito durante la configurazione della schermata per il consenso OAuth.
    6. Fai clic su Autorizza.

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:

      apply plugin: 'java'
    apply plugin: 'application'
    
    mainClassName = 'KeepQuickstart'
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
    version = '1.0'
    
    sourceCompatibility = 1.8
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        implementation 'com.google.api-client:google-api-client:1.23.0'
        implementation 'com.google.oauth-client:google-oauth-client-jetty:1.23.0'
        implementation 'com.google.apis:google-api-services-keep:v1-rev20210528-1.31.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:

    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.javanet.NetHttpTransport;
    import com.google.api.client.json.JsonFactory;
    import com.google.api.client.json.gson.GsonFactory;
    import com.google.api.client.util.store.FileDataStoreFactory;
    import com.google.api.services.keep.v1.Keep;
    import com.google.api.services.keep.v1.model.Note;
    import com.google.api.services.keep.v1.model.Section;
    import com.google.api.services.keep.v1.model.TextContent;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.security.GeneralSecurityException;
    import java.util.Collections;
    import java.util.List;
    
    public class KeepQuickstart {
    
      private static final String APPLICATION_NAME = "Google Keep API Java Quickstart";
      private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance();
    
      /**
       * Global instance of the scopes required by this quickstart. If modifying these scopes, delete
       * your previously saved tokens/ folder.
       */
      private static final List<String> KEEP_SCOPES =
          Collections.singletonList("https://www.googleapis.com/auth/keep");
    
      private static final String CREDENTIALS_FILE_PATH = "/credentials.json";
    
      /**
       * Creates an authorized Credential object.
       *
       * @param HTTP_TRANSPORT The network HTTP Transport.
       * @return An authorized Credential object.
       * @throws IOException
       */
      private static Credential getOAuthCredentials(final NetHttpTransport HTTP_TRANSPORT)
          throws IOException {
        // Load client secrets.
        InputStream in = KeepQuickstart.class.getResourceAsStream(CREDENTIALS_FILE_PATH);
        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, KEEP_SCOPES)
                .setDataStoreFactory(new FileDataStoreFactory(new java.io.File("tokens")))
                .setAccessType("offline")
                .build();
        LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build();
        return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user");
      }
    
      public static void main(String... args) throws IOException, GeneralSecurityException {
        // Build a new authorized API client service.
        final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
        Keep service =
            new Keep.Builder(HTTP_TRANSPORT, JSON_FACTORY, getOAuthCredentials(HTTP_TRANSPORT))
                .setApplicationName(APPLICATION_NAME)
                .build();
    
        Section noteBody =
            new Section().setText(new TextContent().setText("Finish preparations by tomorrow!"));
        Note newNote = new Note().setTitle("Customer call next week").setBody(noteBody);
    
        // Creates a new text note.
        service.notes().create(newNote).execute();
      }
    }
    
    

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 Keep.

    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