Ł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ć za pomocą wygenerowanych bibliotek dla usług Google za pomocą biblioteki klienta interfejsu API Google dla języka Java. Aby znaleźć wygenerowaną bibliotekę klienta dla interfejsu API Google, zapoznaj się z listą obsługiwanych interfejsów API Google. Oto przykład użycia biblioteki klienta interfejsu Calendar API dla języka Java w celu 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 oraz przesyłanie/pobieranie multimediów

Biblioteka zawiera pomocnicze klasy do przetwarzania zbiorczego, przesyłania multimediów i pobierania multimediów.
Zawiera ona zaawansowaną bibliotekę uwierzytelniania, która zmniejsza ilość kodu potrzebnego do obsługi protokołu OAuth 2.0. Czasami wystarczy kilka linijek tekstu. 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");
}
Pomocnik specyficzny dla App Engine szybko wykonuje uwierzytelnione wywołania interfejsów API i nie musisz się martwić o wymianę kodu na tokeny.

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 klienta Google dla klas pomocniczych Androida w języku Java jest dobrze zintegrowana z usługą Android AccountManager. 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 wygenerowanej biblioteki, możesz pobrać plik binarny biblioteki klienta interfejsów API Google do języka Java bezpośrednio z strony pobierania lub za pomocą Maven lub Gradle. Aby użyć Maven, dodaj te wiersze do pliku pom.xml:
 <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 te wiersze do pliku build.gradle:
 repositories {
      mavenCentral()
  }
  dependencies {
      compile 'com.google.api-client:google-api-client:1.32.1'
  }
Więcej informacji o instalowaniu i konfigurowaniu biblioteki klienta interfejsu Google API na potrzeby Javy znajdziesz w instrukcjach pobierania i konfigurowania.
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: