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.
Utworzysz aplikację wiersza poleceń w Javie wysyłającą żądania do interfejsu Postmaster Tools API.
Cele
- skonfigurować środowisko,
- Skonfiguruj sampel.
- Uruchom przykład.
Wymagania wstępne
- Java 1.8 lub nowsza.
- Gradle w wersji 7.0 lub nowszej.
- Projekt Google Cloud –
- konto Google z włączonym Gmailem.
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.W konsoli Google Cloud włącz interfejs Postmaster Tools API.
Konfigurowanie ekranu zgody OAuth
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.
- W konsoli Google Cloud otwórz menu > Interfejsy API i Usługi > Ekran zgody OAuth. .
- Jako Typ użytkownika wybierz Wewnętrzny i kliknij Utwórz.
- Wypełnij formularz rejestracji aplikacji, a potem kliknij Zapisz i kontynuuj.
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ę.
- 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.- W konsoli Google Cloud otwórz Menu > Interfejsy API i Usługi > Dane logowania.
- Kliknij Utwórz dane logowania > Identyfikator klienta OAuth.
- Kliknij Typ aplikacji > Aplikacja komputerowa.
- W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest wyświetlana tylko w konsoli Google Cloud.
- Kliknij Utwórz. Pojawi się ekran tworzenia klienta OAuth z nowym identyfikatorem klienta i tajnym kluczem klienta.
- Kliknij OK. Nowo utworzone dane logowania pojawią się w sekcji Identyfikatory klienta OAuth 2.0.
- Zapisz pobrany plik JSON jako
credentials.json
i przenieś plik do katalogu roboczego.
Przygotowywanie obszaru roboczego
W katalogu roboczym utwórz nową strukturę projektu:
gradle init --type basic mkdir -p src/main/java src/main/resources
Z katalogu
src/main/resources/
skopiuj plikcredentials.json
. pobrane wcześniej.Otwórz domyślny plik
build.gradle
i zastąp jego zawartość plikiem ten kod:apply plugin: 'java' apply plugin: 'application' mainClassName = 'GmailPostmasterToolsQuickstart' sourceCompatibility = 1.8 targetCompatibility = 1.8 version = '1.0' 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-gmailpostmastertools:v1-rev20210528-1.31.0' }
Konfigurowanie próbki
W katalogu
src/main/java/
utwórz nowy plik Java o nazwie pasuje do wartościmainClassName
w plikubuild.gradle
.W nowym pliku Java umieść ten kod:
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.jackson2.JacksonFactory; import com.google.api.client.util.store.FileDataStoreFactory; import com.google.api.services.gmailpostmastertools.v1beta1.PostmasterTools; import com.google.api.services.gmailpostmastertools.v1beta1.model.*; import java.io.*; import java.security.GeneralSecurityException; import java.util.Collections; import java.util.List; public class PostmasterToolsApiQuickStart { private static final String APPLICATION_NAME = "PostmasterTools API Java Quickstart"; private static final JsonFactory JSON_FACTORY = JacksonFactory.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("https://www.googleapis.com/auth/postmaster.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 = PostmasterToolsApiQuickStart.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(8891).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(); PostmasterTools postmasterTools = new PostmasterTools.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT)) .setApplicationName(APPLICATION_NAME) .build(); List<Domain> domains = postmasterTools.domains().list().execute().getDomains(); if (domains == null || domains.isEmpty()) { System.out.println("No domains found!"); } else { for (Domain domain : domains) { System.out.println(domain.toPrettyString()); } } } }
Uruchamianie przykładu
Uruchom przykład:
gradle run
-
Przy pierwszym uruchomieniu przykładu pojawi się prośba o autoryzację dostępu:
- 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.
- Kliknij Accept (Zaakceptuj).
Twoja aplikacja w Javie uruchamia i wywołuje interfejs Postmaster Tools 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
- Rozwiązywanie problemów z uwierzytelnianiem i autoryzacją
- Dokumentacja REST interfejsu Postmaster Tools API
- Dokumentacja klienta interfejsów API Google do języka Java
- Dokumentacja interfejsu Postmaster Tools API w języku Javadoc