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 específicas dos serviços 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, visite a lista de APIs do Google compatíveis. Este exemplo usa a biblioteca de cliente da API Calendar para Java ao 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/download de mídia e a execução de tarefas em lote

A biblioteca oferece classes auxiliares para agrupamento em lotes, upload de mídia e download de mídia.
A biblioteca inclui uma poderosa biblioteca de autenticação que pode reduzir a quantidade de código necessária para lidar com o OAuth 2.0. Às vezes, você só precisa de algumas linhas. Por 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 o trabalho rápido de chamadas autenticadas para APIs, e você não precisa se preocupar em trocar 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();
   ...
 }
A biblioteca de cliente do Google para classes auxiliares específicas do Android no Java é bem integrada ao Android AccountManager. Por 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 de API do Google para Java diretamente na página de downloads ou use 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 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 API do Google para Java, consulte a fazer download e instruções de 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: