Acesse facilmente as APIs do Google em 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 o código for uma biblioteca, ou seja, se o código for usado no CLASSPATH de usuários fora do controle.
Os recursos não Beta suspensos serão removidos 18 meses após o lançamento em que foram descontinuados. Você precisa corrigir os usos antes desse período. Se você não fizer isso, qualquer tipo de falha pode resultar em um erro de compilação.

Destaques da biblioteca de cliente da API do Google para Java

É possível chamar as APIs do Google usando bibliotecas geradas por serviços específicos do Google com a biblioteca de cliente de 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. Veja um exemplo que usa a biblioteca de cliente da API Calendar para Java para fazer uma chamada para a 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 o envio em lote e o upload de mídia.

A biblioteca oferece classes auxiliares para agrupamento em 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 da API do Google para Java é compatível com os seguintes ambientes Java:
  • Java 7 ou mais recente, padrão (SE) e Enterprise (EE).
  • Google App Engine
  • Android 4.4 ou versão mais recente. No entanto, se houver uma biblioteca do Google Play Services 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.
Não compatível: Google Web Toolkit (GWT), Java para dispositivos móveis (ME) e Java 6 (ou anterior).

Dependências

A biblioteca de cliente da API do Google para Java (google-api-java-client) foi desenvolvida com base em duas bibliotecas comuns, também criadas pelo Google, e foi desenvolvida para funcionar com qualquer serviço HTTP na Web: