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 del servizio Google con la libreria client dell'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 raccolta semplifica il raggruppamento e il caricamento/download dei contenuti multimediali

La libreria offre classi di assistenza per il raggruppamento, il caricamento dei contenuti multimediali e il download dei contenuti multimediali.
La libreria include una potente libreria di autenticazione che può ridurre la quantità di codice necessaria per gestire OAuth 2.0. A volte bastano poche 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 consentono di eseguire rapidamente le chiamate autenticate alle API e non devi preoccuparti di scambiare codice per 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 le classi helper specifiche di Java per Android sono ben integrate 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 dell'API di Google per Java direttamente dalla pagina dei download oppure puoi utilizzare Maven o Gradle. Per utilizzare Maven, aggiungi le seguenti righe 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 seguenti righe 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 dell'API Google per Java, consulta le istruzioni di download e configurazione.
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: