Einfacher Zugriff auf Google APIs über Java

Die Google API-Clientbibliothek für Java bietet gängige Funktionen aller Google APIs, z. B. HTTP-Transport, Fehlerbearbeitung, Authentifizierung, JSON-Parsing, Mediendownload/-upload und Batchverarbeitung. Die Bibliothek enthält eine leistungsstarke OAuth 2.0-Bibliothek mit konsistenter Schnittstelle, einfachen, effizienten XML- und JSON-Datenmodellen, die jedes Datenschema unterstützen, und Protokollzwischenspeicher.

Wenn Sie eine Google API mit Google-Clientbibliotheken für Java aufrufen möchten, benötigen Sie die generierte Java-Bibliothek für die Google API, auf die Sie zugreifen. Zu diesen generierten Bibliotheken zählen die google-api-java-client-Kernbibliothek sowie API-spezifische Informationen wie die Stamm-URL. Dazu gehören auch Klassen, die Entitäten im Kontext der API darstellen und nützlich sind, um Konvertierungen zwischen JSON- und Java-Objekten zu erzielen.
Mit @Beta auf Klassen- oder Methodenebene gekennzeichnete Funktionen können sich ändern. Sie können in jeder Hauptversion geändert oder entfernt werden. Verwenden Sie Beta-Funktionen nicht, wenn Ihr Code selbst eine Bibliothek ist (d. h. wenn Ihr Code auf dem CLASSPATH von Nutzern verwendet wird, die außerhalb Ihrer Kontrolle liegen).
Verworfene Funktionen, die keine Betafunktionen sind, werden achtzehn Monate nach der Veröffentlichung entfernt, in der sie erstmals eingestellt wurden. Sie müssen Ihre Nutzungen vor diesem Zeitpunkt korrigieren. Andernfalls kann es zu Ausfällen kommen und es ist nicht garantiert, dass ein Kompilierungsfehler auftritt.

Highlights der Google API-Clientbibliothek für Java

Sie können Google APIs mithilfe von dienstspezifischen, für Google generierten Bibliotheken mit der Google API-Clientbibliothek für Java aufrufen. Die generierte Clientbibliothek für eine Google API finden Sie in der Liste der unterstützten Google APIs. In diesem Beispiel wird die Calendar API-Clientbibliothek für Java verwendet, um einen Aufruf an die Google Calendar API zu senden:
 // Show events on user's calendar.
 View.header("Show Calendars");
 CalendarList feed = client.calendarList().list().execute();
 View.display(feed);

Die Bibliothek vereinfacht die Batchverarbeitung und das Hochladen/Herunterladen von Medien

Die Bibliothek bietet Hilfsklassen für die Batchverarbeitung, Medienupload und Mediendownload.
Die Bibliothek enthält eine leistungsstarke Authentifizierungsbibliothek, mit der Sie die Menge an Code reduzieren können, den Sie für OAuth 2.0 benötigen. Manchmal brauchen Sie nur ein paar Zeilen. Beispiel:
 /** Authorizes the installed application to access user's protected data. */
 private static Credential authorize() throws Exception {
   // load client secrets
   GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY,
       new InputStreamReader(CalendarSample.class.getResourceAsStream("/client_secrets.json")));
   // set up authorization code flow
   GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
       httpTransport, JSON_FACTORY, clientSecrets,
       Collections.singleton(CalendarScopes.CALENDAR)).setDataStoreFactory(dataStoreFactory)
      .build();
   // authorize
   return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");
}
Mit App Engine-spezifischen Hilfsfunktionen können authentifizierte API-Aufrufe schnell ausgeführt werden. Sie müssen sich also nicht um den Austausch von Code mit Tokens kümmern.

Beispiel:
 @Override
 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
   AppIdentityCredential credential =
       new AppIdentityCredential(Arrays.asList(UrlshortenerScopes.URLSHORTENER));
   Urlshortener shortener =
       new Urlshortener.Builder(new UrlFetchTransport(), new JacksonFactory(), credential)
       .build();
   UrlHistory history = shortener.URL().list().execute();
   ...
 }
Die Android-spezifischen Hilfsklassen für die Google-Clientbibliothek für Java sind optimal in den Android AccountManager integriert. Beispiel:
 @Override
 public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   // Google Accounts
   credential =
       GoogleAccountCredential.usingOAuth2(this, Collections.singleton(TasksScopes.TASKS));
   SharedPreferences settings = getPreferences(Context.MODE_PRIVATE);
   credential.setSelectedAccountName(settings.getString(PREF_ACCOUNT_NAME, null));
   // Tasks client
   service =
       new com.google.api.services.tasks.Tasks.Builder(httpTransport, jsonFactory, credential)
           .setApplicationName("Google-TasksAndroidSample/1.0").build();
 }
Wenn Sie keine generierte Bibliothek verwenden, können Sie das Binärprogramm für die Google API-Clientbibliothek für Java direkt von der Downloadseite herunterladen oder Maven oder Gradle verwenden. Fügen Sie der Datei pom.xml die folgenden Zeilen hinzu, um Maven zu verwenden:
 <project>
  <dependencies>
   <dependency>
     <groupId>com.google.api-client</groupId>
     <artifactId>google-api-client</artifactId>
     <version>1.32.1</version>
   </dependency>
  </dependencies>
 </project>

Fügen Sie der Datei „build.gradle“ die folgenden Zeilen hinzu, um Gradle zu verwenden:
 repositories {
      mavenCentral()
  }
  dependencies {
      compile 'com.google.api-client:google-api-client:1.32.1'
  }
Weitere Informationen zum Installieren und Einrichten der Google API-Clientbibliothek für Java finden Sie in der Anleitung zum Herunterladen und Einrichten.
Die Google API-Clientbibliothek für Java unterstützt die folgenden Java-Umgebungen:
  • Java 7 oder höher, Standard (SE) und Enterprise (EE)
  • Google App Engine
  • Android 4.4 oder höher. Wenn für den von Ihnen benötigten Google-Dienst eine Bibliothek für Google Play-Dienste verfügbar ist, verwenden Sie diese anstelle dieser Bibliothek. Die Google Play-Bibliothek bietet die bestmögliche Leistung und Nutzererfahrung.
Nicht unterstützt: Google Web Toolkit (GWT), Java Mobile (ME) und Java 6 (oder niedriger).

Abhängigkeiten

Die Google API-Client-Bibliothek für Java (google-api-java-client) basiert auf zwei gängigen Bibliotheken, die ebenfalls von Google erstellt wurden, und funktioniert mit jedem HTTP-Dienst im Web: