Accéder facilement aux API Google à partir de Java

La bibliothèque cliente des API Google pour Java fournit des fonctionnalités communes à toutes les API Google, telles que le transport HTTP, la gestion des erreurs, l'authentification, l'analyse JSON, le téléchargement/l'importation de contenus multimédias et le traitement par lot. Cette bibliothèque inclut une bibliothèque OAuth 2.0 performante avec une interface cohérente, des modèles de données XML et JSON légers et efficaces compatibles avec tous les schémas de données, ainsi que la compatibilité avec les tampons de protocole.

Pour appeler une API Google à l'aide des bibliothèques clientes Google pour Java, vous devez disposer de la bibliothèque Java générée pour l'API Google à laquelle vous accédez. Ces bibliothèques générées incluent la bibliothèque principale google-api-java-client ainsi que des informations spécifiques à l'API telles que l'URL racine. Elles incluent également des classes qui représentent des entités dans le contexte de l'API et sont utiles pour effectuer des conversions entre des objets JSON et des objets Java.
Les fonctionnalités associées à la mention @Beta au niveau de la classe ou de la méthode sont susceptibles d'être modifiées. Ils peuvent être modifiés ou supprimés dans toute version majeure. N'utilisez pas de fonctionnalités bêta si votre code est lui-même une bibliothèque (c'est-à-dire, si votre code est utilisé sur le CLASSPATH des utilisateurs que vous ne contrôlez pas).
Les fonctionnalités non bêta obsolètes seront supprimées 18 mois après la publication dans laquelle elles sont devenues obsolètes. Vous devez corriger vos utilisations avant cette date. Si vous ne le faites pas, des dysfonctionnements peuvent se produire, et vous n'êtes pas certain qu'une erreur de compilation se produit.

Bibliothèque cliente des API Google pour Java

Vous pouvez appeler des API Google à l'aide de bibliothèques générées pour des services Google spécifiques avec la bibliothèque cliente des API Google pour Java. (Pour trouver la bibliothèque cliente générée pour une API Google, consultez la liste des API Google compatibles.) Voici un exemple qui utilise la bibliothèque cliente de l'API Calendar pour Java afin d'appeler l'API Google Calendar:
 // Show events on user's calendar.
 View.header("Show Calendars");
 CalendarList feed = client.calendarList().list().execute();
 View.display(feed);

La bibliothèque facilite le traitement par lot et l'importation/le téléchargement de contenus multimédias

La bibliothèque propose des classes d'assistance pour le traitement par lot, l'importation de contenus multimédias et le téléchargement de contenus multimédias.
Elle inclut une bibliothèque d'authentification puissante, capable de réduire la quantité de code nécessaire pour gérer OAuth 2.0. Parfois, quelques lignes suffisent. Exemple:
 /** 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");
}
Les outils d'aide spécifiques à App Engine effectuent rapidement des appels authentifiés aux API, et vous n'avez pas à vous soucier de l'échange de code pour des jetons.

Exemple :
 @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 bibliothèque cliente Google pour les classes d'assistance spécifiques à Java pour Android est bien intégrée à Android AccountManager. Exemple:
 @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 vous n'utilisez pas de bibliothèque générée, vous pouvez télécharger le binaire de la bibliothèque cliente des API Google pour Java directement depuis la page de téléchargements. Vous pouvez également utiliser Maven ou Gradle. Pour utiliser Maven, ajoutez les lignes suivantes à votre fichier pom.xml:
 <project>
  <dependencies>
   <dependency>
     <groupId>com.google.api-client</groupId>
     <artifactId>google-api-client</artifactId>
     <version>1.32.1</version>
   </dependency>
  </dependencies>
 </project>

Pour utiliser Gradle, ajoutez les lignes suivantes à votre fichier build.gradle:
 repositories {
      mavenCentral()
  }
  dependencies {
      compile 'com.google.api-client:google-api-client:1.32.1'
  }
Pour en savoir plus sur l'installation et la configuration de la bibliothèque cliente des API Google pour Java, consultez les instructions de téléchargement et de configuration.
La bibliothèque cliente des API Google pour Java est compatible avec les environnements Java suivants:
  • Java 7 ou version ultérieure, standard (SE) et entreprise (EE).
  • Google App Engine
  • Android 4.4 ou version ultérieure, mais si une bibliothèque des services Google Play est disponible pour le service Google dont vous avez besoin, utilisez cette bibliothèque plutôt que celle-ci. La bibliothèque Google Play vous offrira les meilleures performances et une expérience optimale.
Non compatible: Google Web Toolkit (GWT), Java mobile (ME) et Java 6 (ou version antérieure).

Dépendances

La bibliothèque cliente des API Google pour Java (google-api-java-client) repose sur deux bibliothèques courantes, également créées par Google. Elle est conçue pour fonctionner avec n'importe quel service HTTP sur le Web: