Accedi facilmente alle API di Google da Java

La libreria client delle API di Google per Java fornisce funzionalità comuni a tutte le API di Google, ad esempio trasporto HTTP, gestione degli errori, autenticazione, analisi JSON, download/caricamento di contenuti multimediali e batch. La libreria include una potente libreria OAuth 2.0 con un'interfaccia coerente, modelli di dati XML e JSON leggeri ed efficienti che supportano qualsiasi schema di dati e supporto per buffer di protocollo.

Per chiamare un'API di Google utilizzando le librerie client di Google per Java, è necessaria la libreria Java generata per l'API di Google a cui stai accedendo. Queste librerie generate includono la libreria principale google-api-java-client e informazioni specifiche dell'API, come l'URL principale. Inoltre, includono classi che rappresentano entità nel contesto dell'API e che sono utili per effettuare conversioni tra oggetti JSON e oggetti Java.
Le funzionalità contrassegnate con @Beta a livello di classe o di metodo sono soggette a modifica. Potrebbero essere modificati o rimossi in qualsiasi release principale. Non utilizzare le funzionalità beta se il codice è una libreria stessa (vale a dire, se il tuo codice viene utilizzato sul CLASSPATH di utenti al di fuori del tuo controllo).
Le funzionalità non beta deprecate verranno rimosse diciotto mesi dopo il rilascio in cui vengono ritirate per la prima volta. Devi correggere i tuoi utilizzi prima di questo periodo. In caso contrario, potrebbe verificarsi qualsiasi tipo di interruzione e non è garantito un errore di compilazione.

Caratteristiche principali della libreria client delle API di Google per Java

Puoi chiamare le API di Google utilizzando le librerie generate specifiche per i servizi Google con la libreria client delle API di Google per Java. Per trovare la libreria client generata per un'API di Google, consulta l'elenco delle API di Google supportate. Ecco un esempio che utilizza la libreria client dell'API Calendar per Java per effettuare una chiamata all'API Google Calendar:
 // Show events on user's calendar.
 View.header("Show Calendars");
 CalendarList feed = client.calendarList().list().execute();
 View.display(feed);

La libreria semplifica le attività di batch e caricamento/download di contenuti multimediali

La libreria offre classi helper per il batch, il caricamento di contenuti multimediali e il download di contenuti multimediali.
Include una libreria di autenticazione efficace che può ridurre la quantità di codice necessaria per gestire OAuth 2.0. A volte sono sufficienti alcune righe. Ad esempio:
 /** 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");
}
Gli helper specifici di App Engine eseguono rapidamente le chiamate autenticate alle API e non devi preoccuparti di scambiare il codice con i token.

Ad esempio:
 @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();
   ...
 }
La libreria client di Google per i corsi di supporto specifici per Android di Java è ben integrata con Android AccountManager. Ad esempio:
 @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 non utilizzi una libreria generata, puoi scaricare il programma binario della libreria client delle API di Google per Java direttamente dalla pagina dei download oppure utilizzare Maven o Gradle. Per utilizzare Maven, aggiungi le righe seguenti al file pom.xml:
 <project>
  <dependencies>
   <dependency>
     <groupId>com.google.api-client</groupId>
     <artifactId>google-api-client</artifactId>
     <version>1.32.1</version>
   </dependency>
  </dependencies>
 </project>

Per utilizzare Gradle, aggiungi le righe seguenti al file build.gradle:
 repositories {
      mavenCentral()
  }
  dependencies {
      compile 'com.google.api-client:google-api-client:1.32.1'
  }
Per ulteriori dettagli sull'installazione e sulla configurazione della libreria client delle API di Google per Java, consulta le istruzioni per scaricare e configurare.
La libreria client delle API di Google per Java supporta i seguenti ambienti Java:
  • Java 7 o superiore, standard (SE) ed enterprise (EE).
  • Google App Engine.
  • Android 4.4 o versioni successive. Tuttavia, se è disponibile una libreria di Google Play Services per il servizio Google che ti serve, puoi utilizzare quella libreria anziché questa. La raccolta di Google Play ti offrirà la migliore esperienza e prestazioni possibili.
Non supportati: Google Web Toolkit (GWT), Java Mobile (ME) e Java 6 (o versioni precedenti).

Dipendenze

La libreria client delle API di Google per Java (google-api-java-client) si basa su due librerie comuni, anch'esse create da Google, ed è progettata per funzionare con qualsiasi servizio HTTP sul Web: