Guida rapida di Java

Crea un'applicazione da riga di comando Java che effettua richieste all'API Google Slides.

Le guide rapide spiegano come configurare ed eseguire un'app che chiama un'API Google Workspace. Questa guida rapida utilizza un approccio di autenticazione semplificato adatto a un ambiente di test. Per un ambiente di produzione, ti consigliamo di scoprire di più sull'autenticazione e sull'autorizzazione prima di scegliere le credenziali di accesso appropriate per la tua app.

Questa guida rapida utilizza le librerie client delle API consigliate di Google Workspace per gestire alcuni dettagli del flusso di autenticazione e autorizzazione.

Obiettivi

  • Configurare l'ambiente.
  • Configurare l'esempio.
  • Eseguire l'esempio.

Prerequisiti

  • Un Account Google.

Configura l'ambiente

Per completare questa guida rapida, configura l'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 Slides.

    Abilita l'API

Se utilizzi un nuovo progetto Google Cloud per completare questa guida rapida, configura la schermata per il consenso OAuth. Se hai già completato questo passaggio per il tuo progetto Cloud, vai alla sezione successiva.

  1. Nella console API di Google, vai a Menu > Piattaforma di autenticazione Google > Branding.

    Vai a Branding

  2. Se hai già configurato la piattaforma di autenticazione Google, puoi configurare le seguenti impostazioni della schermata per il consenso OAuth in Branding, Pubblico e Accesso ai dati. Se visualizzi il messaggio Google Auth platform not configured yet (La piattaforma di autenticazione Google non è ancora configurata), fai clic su Get Started (Inizia):
    1. In Informazioni sull'app, nel campo Nome app, inserisci un nome per l'app.
    2. In Email di assistenza utente, scegli un indirizzo email di assistenza a cui gli utenti possono contattarti in caso di domande sul consenso.
    3. Fai clic su Avanti.
    4. In Pubblico, seleziona Interno.
    5. Fai clic su Avanti.
    6. In Dati di contatto, inserisci un indirizzo email a cui ricevere notifiche in caso di modifiche al progetto.
    7. Fai clic su Avanti.
    8. In Fine , esamina le Norme relative ai dati utente dei servizi API di Google e, se le accetti, seleziona Accetto le Norme relative ai dati utente: servizi API di Google.
    9. Fai clic su Continua.
    10. Fai clic su Crea.
  3. Per il momento, puoi saltare l'aggiunta di ambiti. In futuro, quando crei un'app da utilizzare al di fuori della tua organizzazione Google Workspace, devi impostare il Tipo di utente su Esterno. Aggiungi poi gli ambiti di autorizzazione richiesti dall'app. Per saperne di più, consulta la guida completa Configurare il consenso OAuth guide.

Autorizza 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 una singola app nei server OAuth di Google. Se l'app viene eseguita su più piattaforme, devi creare un ID client separato per ogni piattaforma.
  1. Nella console API di Google, vai a Menu > Piattaforma di autenticazione Google > Client.

    Vai a Client

  2. Fai clic su Crea client.
  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 API di Google.
  5. Fai clic su Crea.

    La credenziale appena creata viene visualizzata in "ID client OAuth 2.0".

  6. Salva il file JSON scaricato come credentials.json e sposta il file nella directory di lavoro.

Prepara l'area di lavoro

  1. Nella 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 che hai scaricato in precedenza.

  3. Apri il file build.gradle predefinito e sostituisci i contenuti con il seguente codice:

    slides/quickstart/build.gradle
    apply plugin: 'java'
    apply plugin: 'application'
    
    mainClassName = 'SlidesQuickstart'
    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-slides:v1-rev20220722-2.0.0'
    }

Configura l'esempio

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

  2. Includi il seguente codice nel nuovo file Java:

    slides/quickstart/src/main/java/SlidesQuickstart.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.slides.v1.Slides;
    import com.google.api.services.slides.v1.SlidesScopes;
    import com.google.api.services.slides.v1.model.Page;
    import com.google.api.services.slides.v1.model.Presentation;
    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 SlidesQuickstart {
      private static final String APPLICATION_NAME = "Google Slides API Java Quickstart";
      private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance();
      private static final String TOKENS_DIRECTORY_PATH = "tokens";
    
      /**
       * Global instance of the scopes required by this quickstart.
       * If modifying these scopes, delete your previously saved tokens/ folder.
       */
      private static final List<String> SCOPES =
          Collections.singletonList(SlidesScopes.PRESENTATIONS_READONLY);
      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 If the credentials.json file cannot be found.
       */
      private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT)
          throws IOException {
        // Load client secrets.
        InputStream in = SlidesQuickstart.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, SCOPES)
            .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH)))
            .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();
        Slides service =
            new Slides.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT))
                .setApplicationName(APPLICATION_NAME)
                .build();
    
        // Prints the number of slides and elements in a sample presentation:
        // https://docs.google.com/presentation/d/1EAYk18WDjIG-zp_0vLm3CsfQh_i8eXc67Jo2O9C6Vuc/edit
        String presentationId = "1EAYk18WDjIG-zp_0vLm3CsfQh_i8eXc67Jo2O9C6Vuc";
        Presentation response = service.presentations().get(presentationId).execute();
        List<Page> slides = response.getSlides();
    
        System.out.printf("The presentation contains %s slides:\n", slides.size());
        for (int i = 0; i < slides.size(); ++i) {
          System.out.printf("- Slide #%s contains %s elements.\n", i + 1,
              slides.get(i).getPageElements().size());
        }
      }
    }

Esegui l'esempio

  1. Esegui l'esempio:

    gradle run
    
  1. La prima volta che esegui l'esempio, ti viene chiesto di autorizzare l'accesso:
    1. Se non l'hai ancora fatto, accedi al tuo Account Google quando ti viene richiesto. Se hai eseguito l'accesso a più account, seleziona un account da utilizzare per l'autorizzazione.
    2. Fai clic su Accetto.

    L'applicazione Java viene eseguita e chiama l'API Google Slides.

    Le informazioni di autorizzazione vengono archiviate nel file system, quindi la volta successiva che esegui il codice di esempio non ti viene richiesta l'autorizzazione.

Passaggi successivi