Łatwy dostęp do interfejsów API Google z poziomu Javy

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 dowolnej głównej wersji. Nie używaj funkcji w wersji beta, jeśli Twój kod jest biblioteką (czyli jest używany na ścieżce CLASSPATH użytkowników spoza Twojej kontroli).
Wycofane funkcje inne niż beta zostaną usunięte po 18 miesiącach od wydania, w którym zostały po raz pierwszy wycofane. Musisz poprawić przypadki użycia przed tym terminem. Jeśli tego nie zrobisz, mogą wystąpić jakiekolwiek problemy. Nie masz też gwarancji wystąpienia błędu kompilacji.

Najważniejsze informacje o bibliotece klienta interfejsów API Google dla języka Java

Interfejsy API Google możesz wywoływać, korzystając z bibliotek wygenerowanych na potrzeby konkretnych usług Google za pomocą biblioteki klienta interfejsu API Google dla języka Java. (aby znaleźć wygenerowaną bibliotekę klienta dla interfejsu API Google, zobacz listę obsługiwanych interfejsów API Google). Oto przykład użycia biblioteki klienta interfejsu API Kalendarza w Javie do wywołania interfejsu 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/pobieranie multimediów

W bibliotece dostępne są zajęcia pomocnicze dotyczące zbiorczego, przesyłania 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 interfejsów API Google dla języka Java obsługuje te środowiska Java:
  • Java 7 lub nowsza, wersja standardowa (SE) i Enterprise (EE).
  • Google App Engine
  • Android 4.4 lub nowszy – ale jeśli dla danej usługi Google dostępna jest biblioteka Usług Google Play, skorzystaj z niej zamiast tej biblioteki. Biblioteka Google Play zapewni Ci najlepszą wydajność i wygodę korzystania z aplikacji.
Nieobsługiwane: zestaw narzędzi Google Web Toolkit (GWT), Java na komórki (ME) i Java 6 (lub wcześniejsze).

Zależności

Biblioteka klienta interfejsów API Google dla języka Java (google-api-java-client) powstała na bazie dwóch popularnych bibliotek, również opracowanych przez Google, i została zaprojektowana tak, aby działać z dowolną usługą HTTP w internecie: