Acesse facilmente as APIs do Google no Java

A biblioteca de cliente da API do Google para Java oferece funcionalidades comuns a todas as APIs do Google, por exemplo, transporte HTTP, tratamento de erros, autenticação, análise JSON, download/upload de mídia e agrupamento em lote. A biblioteca inclui uma poderosa biblioteca OAuth 2.0 com uma interface consistente, modelos de dados XML e JSON leves e eficientes que são compatíveis com qualquer esquema de dados e suporte para buffers de protocolo.

Para chamar uma API do Google usando bibliotecas de cliente do Google para Java, você precisa da biblioteca Java gerada para a API do Google que está acessando. Essas bibliotecas geradas incluem a biblioteca principal google-api-java-client com informações específicas da API, como o URL raiz. Elas também incluem classes que representam entidades no contexto da API e que são úteis para fazer conversões entre objetos JSON e objetos Java.
Os recursos marcados com @Beta no nível da classe ou do método estão sujeitos a mudanças. Eles podem ser modificados ou removidos em qualquer versão principal. Não use recursos beta se seu código for uma biblioteca (ou seja, se for usado no CLASSPATH de usuários fora de seu controle).
Os recursos não Beta descontinuados serão removidos 18 meses após o lançamento em que foram descontinuados. Corrija o uso antes disso. Caso contrário, qualquer tipo de falha poderá ocorrer, e não há garantia de erro de compilação.

Destaques da biblioteca de cliente das APIs do Google para Java

Você pode chamar as APIs do Google usando as bibliotecas geradas especificamente para serviços do Google com a biblioteca de cliente das APIs do Google para Java. Para encontrar a biblioteca de cliente gerada para uma API do Google, acesse a lista de APIs do Google compatíveis. Este exemplo usa a biblioteca de cliente da API Calendar para Java ao fazer uma chamada à API Google Calendar:
 // Show events on user's calendar.
 View.header("Show Calendars");
 CalendarList feed = client.calendarList().list().execute();
 View.display(feed);

A biblioteca facilita a criação de lotes e o upload/download de mídia

A biblioteca oferece classes auxiliares para lotes, upload de mídia e download de mídia.
Essa biblioteca inclui uma poderosa biblioteca de autenticação que pode reduzir a quantidade de código necessária para processar o OAuth 2.0. Às vezes, você precisa de algumas linhas. Exemplo:
 /** 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");
}
Os auxiliares específicos do App Engine fazem trabalho rápido de chamadas autenticadas para APIs, e você não precisa se preocupar com a troca de código por tokens.

Por exemplo:
 @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();
   ...
 }
As classes auxiliares específicas do Java da biblioteca de cliente do Google para Java são bem integradas ao Android AccountManager. Exemplo:
 @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();
 }
Se você não estiver usando uma biblioteca gerada, faça o download do binário da biblioteca de cliente da API do Google para Java diretamente na página de downloads. Outra opção é usar o Maven ou o Gradle. Para usar o Maven, adicione as seguintes linhas ao seu arquivo pom.xml:
 <project>
  <dependencies>
   <dependency>
     <groupId>com.google.api-client</groupId>
     <artifactId>google-api-client</artifactId>
     <version>1.32.1</version>
   </dependency>
  </dependencies>
 </project>

Para usar o Gradle, adicione as seguintes linhas ao seu arquivo build.gradle:
 repositories {
      mavenCentral()
  }
  dependencies {
      compile 'com.google.api-client:google-api-client:1.32.1'
  }
Para mais detalhes sobre como instalar e configurar a biblioteca de cliente da API do Google para Java, consulte as instruções de download e configuração.
A biblioteca de cliente das APIs do Google para Java oferece suporte aos seguintes ambientes Java:
  • Java 7 ou superior, padrão (SE) e enterprise (EE).
  • Google App Engine
  • Android 4.4 ou versão posterior, mas se uma biblioteca do Google Play Services estiver disponível para o serviço do Google necessário, use essa biblioteca em vez desta. A biblioteca do Google Play oferecerá o melhor desempenho e a melhor experiência possível.
Sem suporte: Google Web Toolkit (GWT), Java mobile (ME) e Java 6 (ou anterior).

Dependências

A biblioteca cliente da API do Google para Java (google-api-java-client) é construída sobre duas bibliotecas comuns, também desenvolvidas pelo Google, e foi projetada para funcionar com qualquer serviço HTTP na web: