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 Google-dienstspezifischen 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. Hier ist ein Beispiel, in dem die Calendar API Client Library for Java verwendet wird, um die Google Calendar API aufzurufen:
 // Show events on user's calendar.
 View.header("Show Calendars");
 CalendarList feed = client.calendarList().list().execute();
 View.display(feed);

Die Mediathek vereinfacht das Batching und den Upload/Download von Medien

Die Bibliothek bietet Hilfsklassen für Stapelverarbeitung, Medien-Upload und Mediendownload.
Die Bibliothek enthält eine leistungsstarke Authentifizierungsbibliothek, mit der sich der Code für die OAuth 2.0-Verarbeitung reduzieren lässt. Manchmal reichen schon 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 Helfern lassen sich authentifizierte API-Aufrufe schnell erledigen und Sie müssen sich keine Gedanken über den Austausch von Code gegen Tokens machen.

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 der Google-Clientbibliothek für Java sind gut in 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 die Binärdatei für die Google API-Clientbibliothek für Java direkt über die Downloadseite herunterladen oder Maven oder Gradle verwenden. Wenn Sie Maven verwenden möchten, fügen Sie der Datei „pom.xml“ die folgenden Zeilen hinzu:
 <project>
  <dependencies>
   <dependency>
     <groupId>com.google.api-client</groupId>
     <artifactId>google-api-client</artifactId>
     <version>1.32.1</version>
   </dependency>
  </dependencies>
 </project>

Wenn Sie Gradle verwenden möchten, fügen Sie der Datei build.gradle-Datei die folgenden Zeilen hinzu:
 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 herunterladen und Einrichtungsanleitung.
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: