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 mit dienstspezifischen, von 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 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 Bibliothek vereinfacht das Batch- und das Hochladen/Herunterladen von Medien

Die Bibliothek bietet Hilfsklassen für Stapelverarbeitung, Medien-Upload und Mediendownload.
Die Bibliothek enthält eine leistungsstarke Authentifizierungsbibliothek, durch die Sie die für die Verarbeitung von OAuth 2.0 erforderliche Codemenge reduzieren können. Manchmal reichen ein paar Zeilen aus. 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");
}
App Engine-spezifische Hilfsfunktionen erledigen authentifizierte Aufrufe an APIs schnell und Sie müssen sich nicht um den Austausch von Code gegen 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 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 von der Downloadseite herunterladen oder Maven oder Gradle verwenden. Um Maven zu verwenden, 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: