Przewodniki szybkiego startu wyjaśniają, jak skonfigurować i uruchamiać aplikację, która wywołuje interfejs Google Workspace API.
Szybkie porady dotyczące Google Workspace korzystają z bibliotek klienta interfejsu API do obsługi niektórych szczegółów procesu uwierzytelniania i autoryzacji. Zalecamy używanie bibliotek klienta w przypadku własnych aplikacji. W tym krótkim wprowadzeniu użyjemy uproszczonego podejścia do uwierzytelniania, które jest odpowiednie dla środowiska testowego. W przypadku środowiska produkcyjnego zalecamy zapoznanie się z informacjami na temat uwierzytelniania i autoryzacji, zanim wybierzesz odpowiednie dla swojej aplikacji poświadczenia dostępu.
Utwórz aplikację wiersza poleceń w Javie, która wysyła żądania do interfejsu Postmaster Tools API.
Cele
- skonfigurować środowisko,
- Skonfiguruj próbkę.
- Uruchom przykład.
Wymagania wstępne
- Java w wersji 1.8 lub nowszej.
- Gradle w wersji 7.0 lub nowszej.
- projekt Google Cloud,
- Konto Google z włączonym Gmailem.
Konfigurowanie środowiska
Aby rozpocząć 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 do wykonania zadań z tego krótkiego wprowadzenia posłużył Ci nowy, specjalnie utworzony projekt Google Cloud, skonfiguruj ekran akceptacji OAuth. Jeśli ten krok został już wykonany w przypadku Twojego projektu Cloud, przejdź do następnej sekcji.
- W konsoli Google Cloud otwórz Menu > > Identyfikacja marki.
- Jeśli masz już skonfigurowany projekt , możesz skonfigurować te ustawienia ekranu zgody OAuth: Markowanie, Odbiorcy i Dostęp do danych. Jeśli zobaczysz komunikat nie skonfigurowano, kliknij Rozpocznij:
- W sekcji Informacje o aplikacji w polu Nazwa aplikacji wpisz nazwę aplikacji.
- W sekcji Adres e-mail zespołu pomocy wybierz adres e-mail zespołu pomocy, na który użytkownicy będą mogli się z Tobą kontaktować w sprawie pytań dotyczących zgody.
- Kliknij Dalej.
- W sekcji Odbiorcy wybierz Wewnętrzny.
- Kliknij Dalej.
- W sekcji Dane kontaktowe wpisz adres e-mail, na który będą wysyłane powiadomienia o zmianach w projekcie.
- Kliknij Dalej.
- W sekcji Zakończ zapoznaj się z zasadami dotyczącymi danych użytkownika w usługach interfejsu API Google, a potem, jeśli się z nimi zgadzasz, kliknij Akceptuję zasady dotyczące danych użytkownika w usługach interfejsu API Google.
- Kliknij Dalej.
- Kliknij Utwórz.
- Na razie możesz pominąć dodawanie zakresów. Gdy w przyszłości będziesz tworzyć aplikację do użytku poza organizacją Google Workspace, musisz zmienić Typ użytkownika na Zewnętrzny. Następnie dodaj zakresy autoryzacji wymagane przez aplikację. Więcej informacji znajdziesz w pełnym przewodniku Konfigurowanie zgody OAuth.
Autoryzowanie danych logowania do aplikacji na komputer
Aby uwierzytelniać użytkowników i dostępować do ich danych w aplikacji, musisz utworzyć co najmniej 1 identyfikator klienta OAuth 2.0. Identyfikator klienta wskazuje konkretną aplikację na serwerach OAuth Google. Jeśli Twoja aplikacja działa na kilku platformach, musisz utworzyć osobny identyfikator klienta dla każdej z nich.- W konsoli Google Cloud kliknij Menu > > Klienci.
- Kliknij Utwórz klienta.
- Kliknij Typ aplikacji > Aplikacja na komputer.
- W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest wyświetlana tylko w konsoli Google Cloud.
- Kliknij Utwórz.
Nowo utworzone dane uwierzytelniające pojawią się w sekcji „Identyfikatory klienta OAuth 2.0”.
- Zapisz pobrany plik JSON jako
credentials.json
i przenieś go do katalogu roboczego.
Przygotowanie obszaru roboczego
W katalogu roboczym utwórz nową strukturę projektu:
gradle init --type basic mkdir -p src/main/java src/main/resources
W katalogu
src/main/resources/
skopiuj pobrany wcześniej plikcredentials.json
.Otwórz domyślny plik
build.gradle
i zastąp jego zawartość tym kodem: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 odpowiadającej wartościmainClassName
w plikubuild.gradle
.Dodaj do nowego pliku Java 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
-
Gdy uruchomisz próbkę po raz pierwszy, pojawi się prośba o autoryzację dostępu:
- Jeśli nie zalogowano się na konto Google, zaloguj się, gdy pojawi się taka prośba. Jeśli logujesz się na kilka kont, wybierz jedno konto, którego chcesz użyć do autoryzacji.
- Kliknij Accept (Zaakceptuj).
Aplikacja w Javie działa i wywołuje interfejs Postmaster Tools API.
Informacje autoryzacyjne są przechowywane w systemie plików, więc następnym razem, gdy uruchomisz przykładowy kod, nie pojawi się prośba o autoryzację.
Dalsze kroki
- Rozwiązywanie problemów z uwierzytelnianiem i autoryzacją
- Dokumentacja API REST Postmaster Tools
- Dokumentacja klienta interfejsów API Google do języka Java
- Dokumentacja Javadoc interfejsu API Postmaster Tools