Легкий доступ к API Google из Java

Клиентская библиотека API Google для Java предоставляет функциональные возможности, общие для всех API Google, например транспорт HTTP, обработку ошибок, аутентификацию, синтаксический анализ JSON, загрузку/выгрузку мультимедиа и пакетную обработку. Библиотека включает в себя мощную библиотеку OAuth 2.0 с согласованным интерфейсом; легкие, эффективные модели данных XML и JSON, поддерживающие любую схему данных; и поддержка протокольных буферов .

Чтобы вызвать API Google с помощью клиентских библиотек Google для Java, вам потребуется сгенерированная библиотека Java для API Google, к которому вы обращаетесь. Эти сгенерированные библиотеки включают основную библиотеку google-api-java-client, а также информацию, относящуюся к API, например корневой URL-адрес. Они также включают классы, представляющие сущности в контексте API и полезные для выполнения преобразований между объектами JSON и объектами Java.
Функции, отмеченные @Beta на уровне класса или метода, могут быть изменены. Они могут быть изменены или удалены в любом основном выпуске. Не используйте бета-функции, если ваш код сам по себе является библиотекой (то есть, если ваш код используется в CLASSPATH пользователей вне вашего контроля).
Устаревшие небета-функции будут удалены через восемнадцать месяцев после выпуска, в котором они впервые стали устаревшими. Вы должны исправить свои привычки до этого времени. Если вы этого не сделаете, это может привести к поломке любого типа, и вам не гарантирована ошибка компиляции.

Основные особенности клиентской библиотеки Google API для Java

Вы можете вызывать API Google, используя библиотеки, созданные для конкретных служб Google, с помощью клиентской библиотеки API Google для Java. (Чтобы найти созданную клиентскую библиотеку для API Google, посетите список поддерживаемых API Google .) Вот пример, в котором клиентская библиотека API календаря для Java используется для вызова API календаря Google:
 // Show events on user's calendar.
 View.header("Show Calendars");
 CalendarList feed = client.calendarList().list().execute();
 View.display(feed);

Библиотека упрощает пакетную обработку и загрузку/загрузку мультимедиа.

Библиотека предлагает вспомогательные классы для пакетной обработки , загрузки и загрузки мультимедиа .
Библиотека включает в себя мощную библиотеку аутентификации , которая может сократить объем кода, необходимого для обработки OAuth 2.0. Иногда достаточно нескольких строк. Например:
 /** 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, быстро выполняют аутентифицированные вызовы API, и вам не нужно беспокоиться об обмене кода на токены.

Например:
 @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();
   ...
 }
Клиентская библиотека Google для Java. Вспомогательные классы Android, специфичные для Android, хорошо интегрированы с Android AccountManager . Например:
 @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();
 }
Если вы не используете сгенерированную библиотеку , вы можете загрузить двоичный файл клиентской библиотеки Google API для Java непосредственно со страницы загрузок или использовать Maven или Gradle. Чтобы использовать Maven, добавьте в файл pom.xml следующие строки:
 <project>
  <dependencies>
   <dependency>
     <groupId>com.google.api-client</groupId>
     <artifactId>google-api-client</artifactId>
     <version>1.32.1</version>
   </dependency>
  </dependencies>
 </project>

Чтобы использовать Gradle, добавьте следующие строки в файл build.gradle:
 repositories {
      mavenCentral()
  }
  dependencies {
      compile 'com.google.api-client:google-api-client:1.32.1'
  }
Более подробную информацию об установке и настройке клиентской библиотеки Google API для Java см. в инструкциях по загрузке и настройке .
Клиентская библиотека Google API для Java поддерживает следующие среды Java:
  • Java 7 или более поздняя версия, стандартная (SE) и корпоративная (EE).
  • Google App Engine .
  • Android 4.4 или выше — но если для нужного вам сервиса Google доступна библиотека Google Play Services , используйте эту библиотеку вместо этой. Библиотека Google Play обеспечит вам максимальную производительность и удобство.
Не поддерживается: Google Web Toolkit (GWT), Java mobile (ME) и Java 6 (или более ранней версии).

Зависимости

Клиентская библиотека API Google для Java (google-api-java-client) построена на основе двух распространенных библиотек, также созданных Google, и предназначена для работы с любой службой HTTP в Интернете: