Łatwy dostęp do interfejsów API Google z języka Java

Biblioteka klienta Google API dla języka Java zapewnia funkcje typowe dla wszystkich interfejsów API Google, na przykład transport HTTP, obsługę błędów, uwierzytelnianie, analiza danych JSON, pobieranie i przesyłanie multimediów oraz grupowanie. Biblioteka obejmuje zaawansowaną bibliotekę OAuth 2.0 o spójnym interfejsie, oraz proste, skuteczne modele danych XML i JSON, które obsługują dowolny schemat danych oraz obsługę buforów protokołów.

Aby wywołać interfejs API Google, używając bibliotek klienta Google dla Javy, potrzebujesz wygenerowanej biblioteki Java dla interfejsu API, do którego uzyskujesz dostęp. Te wygenerowane biblioteki zawierają podstawową bibliotekę google-api-java-client oraz informacje związane z interfejsem API, takie jak główny adres URL. Obejmują też klasy reprezentujące encje w kontekście interfejsu API i przydatne do konwersji między obiektami JSON a obiektami Java.
Funkcje oznaczone symbolem @beta na poziomie klasy lub metody mogą ulec zmianie. Mogą one zostać zmodyfikowane lub usunięte w dużej wersji głównej. Nie używaj funkcji w wersji beta, jeśli kod jest samą biblioteką (to znaczy, jeśli jest on używany w CLASSPATH) użytkowników spoza Twojej kontroli.
Wycofane funkcje inne niż beta zostaną usunięte 18 miesięcy po premierze, w której zostały wycofane. Do tego czasu musisz rozwiązać problem. Jeśli nie zdecydujesz się na wykonanie takiego działania, każdy rodzaj przerwania może spowodować wystąpienie błędu kompilacji.

Najważniejsze funkcje w Bibliotece klienta Google API w języku Java

Korzystając z Biblioteki klienta Google API dla języka Java, możesz wywoływać interfejsy API Google przy użyciu bibliotek wygenerowanych przez Google. (Aby znaleźć wygenerowaną bibliotekę klienta dla interfejsu API Google, sprawdź listę obsługiwanych interfejsów API Google). Oto przykład, który używa biblioteki klienta interfejsu Calendar API do obsługi języka Java, aby wywołać interfejs Google Calendar API:
 // Show events on user's calendar.
 View.header("Show Calendars");
 CalendarList feed = client.calendarList().list().execute();
 View.display(feed);

Biblioteka ułatwia grupowanie i przesyłanie oraz pobieranie multimediów

Biblioteka udostępnia zajęcia pomocnicze dotyczące grupowania, przesyłania multimediów i pobierania multimediów.
Biblioteka zawiera zaawansowaną bibliotekę uwierzytelniania, która może zmniejszyć ilość kodu potrzebnego do obsługi OAuth 2.0. Czasem wystarczy kilka wierszy. Na przykład:
 /** 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");
}
Asystenty App Engine wykonują szybkie uwierzytelnione wywołania interfejsów API, więc nie musisz się martwić o wymianę kodu na token.

Przykład:
 @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();
   ...
 }
Biblioteka pomocnicza Google dla Javy jest dobrze zintegrowana z Menedżerem kont na Androidzie. Na przykład:
 @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();
 }
Jeśli nie używasz biblioteki wygenerowanej, możesz pobrać plik binarny biblioteki klienta Google API dla języka Java bezpośrednio ze strony pobierania lub użyć narzędzia Maven lub Gradle. Aby używać Maven, dodaj do pliku pom.xml te wiersze:
 <project>
  <dependencies>
   <dependency>
     <groupId>com.google.api-client</groupId>
     <artifactId>google-api-client</artifactId>
     <version>1.32.1</version>
   </dependency>
  </dependencies>
 </project>

Aby użyć Gradle, dodaj do pliku build.gradle te wiersze:
 repositories {
      mavenCentral()
  }
  dependencies {
      compile 'com.google.api-client:google-api-client:1.32.1'
  }
Szczegółowe informacje o instalowaniu i konfigurowaniu biblioteki klienta interfejsu API Google dla języka Java znajdziesz w instrukcjach pobierania i konfiguracji.
Biblioteka klienta interfejsu API Google dla języka Java obsługuje następujące środowiska Java:
  • Java 7 lub nowsza, standardowa (SE) i Enterprise (EE).
  • Google App Engine.
  • Android 4.4 lub nowszy (ale jeśli masz usługę Google Play dostępną w określonej usłudze Google, użyj tej biblioteki zamiast tej). Biblioteka Google Play zapewni Ci najlepszą jakość i wydajność.
Nieobsługiwane: Google Web Tools (GWT), Java Mobile (ME) i Java 6 (lub starsze).

Zależności

Biblioteka klienta interfejsu API Google dla języka Java (google-api-java-client) została zbudowana na podstawie 2 popularnych bibliotek, również opracowanych przez Google. Działa z dowolną usługą HTTP w internecie: