In den Kurzanleitungen wird erklärt, wie Sie eine App einrichten und ausführen, die eine Google Workspace API
In Google Workspace-Kurzanleitungen werden die API-Clientbibliotheken Details zum Authentifizierungs- und Autorisierungsvorgang. Wir empfehlen, Clientbibliotheken für Ihre eigenen Apps verwenden. In dieser Kurzanleitung wird ein vereinfachten Authentifizierungsansatz, der für Tests geeignet ist, zu verbessern. Für eine Produktionsumgebung empfehlen wir, sich über Authentifizierung und Autorisierung vorher Anmeldedaten auswählen die für Ihre App geeignet sind.
Eine Java-Befehlszeilenanwendung erstellen, die Anfragen an die Postmaster Tools API sendet
Zielsetzungen
- die Umgebung einrichten
- Richten Sie das Beispiel ein.
- Führen Sie das Beispiel aus.
Vorbereitung
- Java 1.8 oder höher.
- Gradle 7.0 oder höher.
- Ein Google Cloud-Projekt
- Sie benötigen ein Google-Konto, für das Gmail aktiviert ist.
Umgebung einrichten
Richten Sie Ihre Umgebung ein, um diese Kurzanleitung abzuschließen.
API aktivieren
Bevor Sie Google APIs verwenden können, müssen Sie sie in einem Google Cloud-Projekt aktivieren. Sie können eine oder mehrere APIs in einem einzelnen Google Cloud-Projekt aktivieren.Aktivieren Sie in der Google Cloud Console die Postmaster Tools API.
OAuth-Zustimmungsbildschirm konfigurieren
Wenn Sie für diese Kurzanleitung ein neues Google Cloud-Projekt verwenden, OAuth-Zustimmungsbildschirm öffnen und sich selbst als Testnutzer hinzufügen. Wenn Sie bereits Sie diesen Schritt für Ihr Cloud-Projekt abgeschlossen haben, fahren Sie mit dem nächsten Abschnitt fort.
- Öffnen Sie in der Google Cloud Console das Menü > APIs und Dienste > OAuth-Zustimmungsbildschirm. .
- Wählen Sie für Nutzertyp die Option Intern aus und klicken Sie dann auf Erstellen.
- Füllen Sie das Formular zur App-Registrierung aus und klicken Sie dann auf Speichern und fortfahren.
Vorerst können Sie das Hinzufügen von Bereichen überspringen und auf Speichern und fortfahren klicken. Wenn Sie in Zukunft eine App erstellen, die außerhalb Ihres Google Workspace-Organisation verwenden, müssen Sie den Nutzertyp in Extern ändern. fügen Sie die Autorisierungsbereiche hinzu, die Ihre Anwendung benötigt.
- Überprüfen Sie Ihre App-Registrierungsübersicht. Wenn Sie Änderungen vornehmen möchten, klicken Sie auf Bearbeiten. Wenn die App mit der Registrierung in Ordnung ist, klicken Sie auf Zurück zum Dashboard.
Anmeldedaten für eine Desktopanwendung autorisieren
Um Endnutzer zu authentifizieren und auf Nutzerdaten in Ihrer Anwendung zuzugreifen, müssen Sie eine oder mehrere OAuth 2.0-Client-IDs erstellen. Eine Client-ID wird zur Identifizierung einer einzelnen Anwendung bei Googles OAuth-Servern verwendet. Wenn Ihre App auf mehreren Plattformen läuft, müssen Sie für jede Plattform eine separate Client-ID erstellen.- Öffnen Sie in der Google Cloud Console das Dreistrich-Menü > APIs und Dienste > Anmeldedaten.
- Klicken Sie auf Anmeldedaten erstellen > OAuth-Client-ID.
- Klicken Sie auf Anwendungstyp > Desktop-App.
- Geben Sie in das Feld Name einen Namen für die Anmeldedaten ein. Dieser Name wird nur in der Google Cloud Console angezeigt.
- Klicken Sie auf Erstellen. Der Bildschirm "OAuth-Client erstellt" wird mit Ihrer neuen Client-ID und Ihrem neuen Clientschlüssel angezeigt.
- Klicken Sie auf OK. Die neu erstellten Anmeldedaten werden unter OAuth 2.0-Client-IDs angezeigt.
- Speichern Sie die heruntergeladene JSON-Datei als
credentials.json
und verschieben Sie den in Ihr Arbeitsverzeichnis.
Arbeitsbereich vorbereiten
Erstellen Sie in Ihrem Arbeitsverzeichnis eine neue Projektstruktur:
gradle init --type basic mkdir -p src/main/java src/main/resources
Kopieren Sie die Datei
credentials.json
in das Verzeichnissrc/main/resources/
. die Sie zuvor heruntergeladen haben.Öffnen Sie die Standarddatei
build.gradle
und ersetzen Sie ihren Inhalt durch die folgenden Code: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' }
Beispielanwendung einrichten
Erstellen Sie im Verzeichnis
src/main/java/
eine neue Java-Datei mit einem Namen, entspricht demmainClassName
-Wert in Ihrerbuild.gradle
-Datei.Fügen Sie den folgenden Code in Ihre neue Java-Datei ein:
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()); } } } }
Beispiel ausführen
Führen Sie das Beispiel aus:
gradle run
-
Wenn Sie das Beispiel zum ersten Mal ausführen, werden Sie aufgefordert, den Zugriff zu autorisieren:
<ph type="x-smartling-placeholder">
- </ph>
- Wenn Sie noch nicht in Ihrem Google-Konto angemeldet sind, melden Sie sich an, wenn Sie dazu aufgefordert werden. Wenn Sie in mehreren Konten angemeldet sind, wählen Sie ein Konto für die Autorisierung aus.
- Klicken Sie auf Akzeptieren.
Ihre Java-Anwendung wird ausgeführt und ruft die Postmaster Tools API auf.
Autorisierungsinformationen werden im Dateisystem gespeichert. Wenn Sie das Beispiel das nächste Mal ausführen, Code eingeben, werden Sie nicht zur Autorisierung aufgefordert.
Nächste Schritte
- Fehlerbehebung bei Authentifizierungs- und Autorisierungsproblemen
- REST-Referenzdokumentation zur Postmaster Tools API
- Dokumentation zum Google APIs-Client für Java
- Javadoc-Dokumentation zur Postmaster Tools API