Accede fácilmente a las API de Google desde Java

La biblioteca cliente de la API de Google para Java proporciona una funcionalidad común a todas las API de Google, por ejemplo, transporte HTTP, manejo de errores, autenticación, análisis de JSON, descarga y carga de medios, y agrupación en lotes. La biblioteca incluye una biblioteca OAuth 2.0 potente con una interfaz coherente; modelos de datos XML y JSON livianos y eficientes que admiten cualquier esquema de datos; y compatibilidad con búferes de protocolo.

Para llamar a una API de Google usando las bibliotecas cliente de Google para Java, necesitas la biblioteca Java generada para la API de Google a la que accedes. Estas bibliotecas generadas incluyen la biblioteca principal google-api-java-client junto con información específica de las API, como la URL raíz. También incluyen clases que representan entidades en el contexto de la API y que son útiles para realizar conversiones entre objetos JSON y Java.
Las funciones marcadas con @Beta a nivel de la clase o del método están sujetas a cambios. Pueden modificarse o quitarse en cualquier actualización importante. No uses funciones beta si tu código es una biblioteca en sí (es decir, si se usa en la CLASSPATH de usuarios fuera de tu control).
Las funciones obsoletas que no sean beta se quitarán dieciocho meses después de su lanzamiento. Debes corregir tus usos antes de ese momento. Si no lo haces, podría producirse cualquier tipo de falla y no se garantiza un error de compilación.

Aspectos destacados de la biblioteca cliente de la API de Google para Java

Puedes llamar a las API de Google usando bibliotecas generadas por el servicio de Google con la biblioteca cliente de la API de Google para Java. (para encontrar la biblioteca cliente generada para una API de Google, visita la lista de API de Google compatibles). Aquí tienes un ejemplo en el que se usa la biblioteca cliente de la API de Calendario para Java a fin de realizar una llamada a la API de Calendario de Google:
 // Show events on user's calendar.
 View.header("Show Calendars");
 CalendarList feed = client.calendarList().list().execute();
 View.display(feed);

La biblioteca facilita la carga y descarga de contenido multimedia y el procesamiento por lotes

La biblioteca ofrece clases auxiliares para el procesamiento por lotes, la carga multimedia y la descarga multimedia.
La biblioteca incluye una biblioteca de autenticación potente que puede reducir la cantidad de código que necesitas para controlar OAuth 2.0. A veces, solo necesitas unas pocas líneas. Por ejemplo:
 /** 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");
}
Los auxiliares específicos de App Engine hacen llamadas rápidas autenticadas a las API, y no necesitas preocuparte por el intercambio de código por tokens.

Por ejemplo:
 @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 biblioteca cliente de Google para las clases auxiliares específicas de Android en Java están bien integradas en el Administrador de cuentas de Android. Por ejemplo:
 @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();
 }
Si no usas una biblioteca generada, puedes descargar el objeto binario de la biblioteca cliente de la API de Google para Java directamente desde la página de descargas, o bien puedes usar Maven o Gradle. Para usar Maven, agrega las siguientes líneas a tu archivo 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 Gradle, agrega las siguientes líneas a tu archivo build.gradle:
 repositories {
      mavenCentral()
  }
  dependencies {
      compile 'com.google.api-client:google-api-client:1.32.1'
  }
Si deseas obtener más información sobre cómo instalar y configurar la biblioteca cliente de la API de Google para Java, consulta las instrucciones de descarga y configuración.
La biblioteca cliente de la API de Google para Java es compatible con estos entornos de Java:
  • Java 7 o superior, estándar (SE) y empresarial (EE).
  • Google App Engine.
  • Android 4.4 o versiones posteriores. Si hay una biblioteca de Servicios de Google Play disponible para el servicio de Google que necesitas, usa esa biblioteca en lugar de esta. La biblioteca de Google Play te brindará el mejor rendimiento y la mejor experiencia posible.
No se admiten Google Web Toolkit (GWT), Java para dispositivos móviles (ME) ni Java 6 (o versiones anteriores).

Dependencias

La biblioteca cliente de la API de Google para Java (google-api-java-client) se basa en dos bibliotecas comunes, también compiladas por Google, y está diseñada para funcionar con cualquier servicio HTTP en la Web: