Accédez facilement aux API Google depuis 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 à @bêta 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 toutes les versions majeures. N'utilisez pas les fonctionnalités bêta si votre code est lui-même une bibliothèque (c'est-à-dire, s'il est utilisé dans le paramètre CLASSPATH des utilisateurs que vous ne contrôlez pas).
Les fonctionnalités non bêta obsolètes seront supprimées 18 mois après leur sortie. Vous devez corriger vos utilisations avant cette date. Si vous ne le faites pas, cela peut entraîner n'importe quel type de rupture, et il n'est pas garanti qu'une erreur de compilation soit rencontrée.

Points forts de la bibliothèque cliente des API Google pour Java

Vous pouvez appeler des API Google à l'aide des bibliothèques générées par le service Google 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 utilisant 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 les importations et les téléchargements par lot

La bibliothèque propose des classes d'assistance pour le traitement par lot, l'importation multimédia 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. Si une bibliothèque des services Google Play est disponible pour le service Google dont vous avez besoin, utilisez-la plutôt que celle-ci. La bibliothèque Google Play vous offre les meilleures performances possibles.
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) s'appuie sur deux bibliothèques courantes, également conçues par Google, et est compatible avec tous les services HTTP sur le Web: