Krótkie wprowadzenie do Javy

Krótkie wprowadzenie wyjaśnia, jak skonfigurować i uruchomić aplikację, która wywołuje Interfejs Google Workspace API.

Krótkie wprowadzenie do Google Workspace wykorzystuje biblioteki klienta API do obsługi niektórych szczegóły procesu uwierzytelniania i autoryzacji. Zalecamy używasz bibliotek klienta we własnych aplikacjach. W tym krótkim wprowadzeniu użyto uproszczone metody uwierzytelniania odpowiednie do testowania dla środowiska. W środowisku produkcyjnym zalecamy zapoznanie się z uwierzytelnianie i autoryzacja przed wybór danych logowania odpowiednie dla Twojej aplikacji.

utworzyć aplikację wiersza poleceń w języku Java, która wysyła żądania do interfejsu Google Vault API;

Cele

  • skonfigurować środowisko,
  • Skonfiguruj sampel.
  • Uruchom przykład.

Wymagania wstępne

  • konto Google.

Konfigurowanie środowiska

Aby ukończyć to krótkie wprowadzenie, skonfiguruj środowisko.

Włącz API

Zanim zaczniesz korzystać z interfejsów API Google, musisz je włączyć w projekcie Google Cloud. W jednym projekcie Google Cloud możesz włączyć 1 lub więcej interfejsów API.

Jeśli korzystasz z nowego projektu Google Cloud, skonfiguruj ekranu zgody OAuth i dodaj siebie jako użytkownika testowego. Jeśli masz już konto Google ten krok został wykonany w Twoim projekcie Cloud, przejdź do następnej sekcji.

  1. W konsoli Google Cloud otwórz menu . > Interfejsy API i Usługi > Ekran zgody OAuth.

    Otwórz ekran zgody OAuth

  2. Jako Typ użytkownika wybierz Wewnętrzny i kliknij Utwórz.
  3. Wypełnij formularz rejestracji aplikacji, a potem kliknij Zapisz i kontynuuj.
  4. Na razie możesz pominąć dodawanie zakresów i kliknąć Zapisz i kontynuuj. w przyszłości, gdy utworzysz aplikację do użytku poza swoim Google Workspace, musisz zmienić Typ użytkownika na Zewnętrzny, a następnie: dodaj zakresy autoryzacji wymagane przez aplikację.

  5. Przejrzyj podsumowanie rejestracji aplikacji. Aby wprowadzić zmiany, kliknij Edytuj. Jeśli aplikacja z rejestracji wszystko jest w porządku, kliknij Back to Dashboard (Powrót do panelu).

Autoryzacja danych logowania w aplikacji komputerowej

Aby uwierzytelniać użytkowników i uzyskiwać dostęp do ich danych w aplikacji, musisz: utwórz co najmniej jeden identyfikator klienta OAuth 2.0. Identyfikator klienta służy do identyfikowania z jedną aplikacją na serwery OAuth Google. Jeśli Twoja aplikacja działa na wielu platformach, musisz utworzyć oddzielny identyfikator klienta dla każdej platformy.
  1. W konsoli Google Cloud otwórz Menu > Interfejsy API i Usługi > Dane logowania.

    Przejdź do danych logowania

  2. Kliknij Utwórz dane logowania > Identyfikator klienta OAuth.
  3. Kliknij Typ aplikacji > Aplikacja komputerowa.
  4. W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest wyświetlana tylko w konsoli Google Cloud.
  5. Kliknij Utwórz. Pojawi się ekran tworzenia klienta OAuth z nowym identyfikatorem klienta i tajnym kluczem klienta.
  6. Kliknij OK. Nowo utworzone dane logowania pojawią się w sekcji Identyfikatory klienta OAuth 2.0.
  7. Zapisz pobrany plik JSON jako credentials.json i przenieś plik do katalogu roboczego.

Przygotowywanie obszaru roboczego

  1. W katalogu roboczym utwórz nową strukturę projektu:

    gradle init --type basic
    mkdir -p src/main/java src/main/resources 
    
  2. Z katalogu src/main/resources/ skopiuj plik credentials.json. pobrane wcześniej.

  3. Otwórz domyślny plik build.gradle i zastąp jego zawartość plikiem ten kod:

    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'
    }
    

Konfigurowanie próbki

  1. W katalogu src/main/java/ utwórz nowy plik Java o nazwie pasuje do wartości mainClassName w pliku build.gradle.

  2. W nowym pliku Java umieść ten kod:

    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());
        }
      }
    }

Uruchamianie przykładu

  1. Uruchom przykład:

    gradle run
    
  1. Przy pierwszym uruchomieniu przykładu pojawi się prośba o autoryzację dostępu:
    1. Jeśli wyświetli się prośba o zalogowanie się na konto Google, zaloguj się. Jeśli używasz wielu kont, wybierz jedno konto do autoryzacji.
    2. Kliknij Accept (Zaakceptuj).

    Aplikacja w Javie zostanie uruchomiona i wywoła interfejs Google Vault API.

    Informacje o autoryzacji są przechowywane w systemie plików, więc przy następnym uruchomieniu próbki nie zostanie wyświetlony monit o autoryzację.

Dalsze kroki