Les guides de démarrage rapide expliquent comment configurer et exécuter une application qui appelle une API Google Workspace.
Les démarrages rapides Google Workspace utilisent les bibliothèques clientes de l'API pour gérer certains détails du flux d'authentification et d'autorisation. Nous vous recommandons d'utiliser les bibliothèques clientes pour vos propres applications. Ce guide de démarrage rapide utilise une approche d'authentification simplifiée adaptée à un environnement de test. Pour un environnement de production, nous vous recommandons de vous familiariser avec l'authentification et l'autorisation avant de choisir les identifiants d'accès appropriés pour votre application.
Créez une application de ligne de commande Java qui envoie des requêtes à l'API Google Keep.
Objectifs
- configurer votre environnement ;
- Configurez l'exemple.
- Exécutez l'exemple.
Prérequis
- Java 1.8 ou version ultérieure
- Gradle 7.0 ou version ultérieure
- Un projet Google Cloud.
- Un compte Google avec Google Keep activé
Configurer votre environnement
Pour suivre ce guide de démarrage rapide, configurez votre environnement.
Activer l'API
Avant d'utiliser les API Google, vous devez les activer dans un projet Google Cloud. Vous pouvez activer une ou plusieurs API dans un même projet Google Cloud.Dans la console Google Cloud, activez l'API Google Keep.
Créer un compte de service
Un compte de service est un type de compte particulier utilisé par une application, et non par une personne. Vous pouvez utiliser un compte de service pour accéder aux données ou effectuer des actions par le biais du compte de robot, ou pour accéder aux données au nom des utilisateurs Google Workspace ou Cloud Identity. Pour en savoir plus, consultez la page Comprendre les comptes de service.Console Google Cloud
- Dans la console Google Cloud, accédez à Menu > IAM et administration > Comptes de service.
- Cliquez sur Créer un compte de service.
- Indiquez les détails du compte de service, puis cliquez sur Créer et continuer.
- Facultatif: Attribuez des rôles à votre compte de service pour accorder l'accès aux ressources de votre projet Google Cloud. Pour en savoir plus, consultez Accorder, modifier et révoquer les accès à des ressources.
- Cliquez sur Continuer.
- Facultatif: saisissez les utilisateurs ou les groupes autorisés à gérer et à effectuer des actions avec ce compte de service. Pour en savoir plus, consultez Gérer l'usurpation d'identité d'un compte de service.
- Cliquez sur OK. Notez l'adresse e-mail du compte de service.
CLI gcloud
- Créez le compte de service :
gcloud iam service-accounts create
SERVICE_ACCOUNT_NAME
\ --display-name="SERVICE_ACCOUNT_NAME
" - Facultatif: Attribuez des rôles à votre compte de service pour accorder l'accès aux ressources de votre projet Google Cloud. Pour en savoir plus, consultez Accorder, modifier et révoquer les accès à des ressources.
Créer des identifiants pour un compte de service
Vous devez obtenir des identifiants sous la forme d'une paire de clés publique/privée. Votre code utilise ces identifiants pour autoriser les actions du compte de service dans votre application.- Dans la console Google Cloud, accédez à Menu > IAM et administration > Comptes de service.
- Sélectionnez votre compte de service.
- Cliquez sur Clés > Ajouter une clé > Créer une clé.
- Sélectionnez JSON, puis cliquez sur Créer.
La nouvelle paire de clés publique/privée est générée et téléchargée sur votre ordinateur en tant que nouveau fichier. Enregistrez le fichier JSON téléchargé sous le nom
credentials.json
dans votre répertoire de travail. Ce fichier est la seule copie de cette clé. Pour savoir comment stocker votre clé de manière sécurisée, consultez la section Gérer les clés de compte de service. - Cliquez sur Fermer.
Configurer la délégation au niveau du domaine pour un compte de service
Pour appeler des API au nom des utilisateurs d'une organisation Google Workspace, un compte super-administrateur doit accorder à votre compte de service une délégation d'autorité au niveau du domaine dans la console d'administration Google Workspace. Pour en savoir plus, consultez la section Déléguer l'autorité au niveau du domaine à un compte de service.- Dans la console Google Cloud, accédez à Menu > IAM et administration > Comptes de service.
- Sélectionnez votre compte de service.
- Cliquez sur Afficher les paramètres avancés.
- Sous "Délégation au niveau du domaine", recherchez l'ID client de votre compte de service. Cliquez sur Copier pour copier la valeur de l'ID client dans le presse-papiers.
Si vous disposez d'un accès super-administrateur au compte Google Workspace concerné, cliquez sur Afficher la console d'administration Google Workspace, puis connectez-vous à l'aide d'un compte utilisateur super-administrateur et suivez la procédure ci-dessous.
Si vous ne disposez pas d'un accès super-administrateur au compte Google Workspace concerné, contactez un super-administrateur de ce compte et envoyez-lui l'ID client et la liste des champs d'application OAuth de votre compte de service afin qu'il puisse suivre les étapes ci-dessous dans la console d'administration.
- Dans la console d'administration Google, accédez à Menu > Sécurité > Contrôle des accès et des données > Commandes des API.
- Cliquez sur Gérer la délégation au niveau du domaine.
- Cliquez sur Ajouter.
- Dans le champ "ID client", collez l'ID client que vous avez copié précédemment.
- Dans le champ "Champs d'application OAuth", saisissez une liste des champs d'application requis par votre application, séparés par une virgule. Il s'agit du même ensemble de champs d'application que vous avez défini lors de la configuration de l'écran de consentement OAuth.
- Cliquez sur Autoriser.
Préparer l'espace de travail
Dans votre répertoire de travail, créez une structure de projet:
gradle init --type basic mkdir -p src/main/java src/main/resources
Dans le répertoire
src/main/resources/
, copiez le fichiercredentials.json
que vous avez précédemment téléchargé.Ouvrez le fichier
build.gradle
par défaut et remplacez son contenu par le code suivant:apply plugin: 'java' apply plugin: 'application' mainClassName = 'KeepQuickstart' sourceCompatibility = 1.8 targetCompatibility = 1.8 version = '1.0' sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { implementation 'com.google.api-client:google-api-client:1.23.0' implementation 'com.google.oauth-client:google-oauth-client-jetty:1.23.0' implementation 'com.google.apis:google-api-services-keep:v1-rev20210528-1.31.0' }
Configurer l'exemple
Dans le répertoire
src/main/java/
, créez un fichier Java portant un nom correspondant à la valeurmainClassName
dans votre fichierbuild.gradle
.Incluez le code suivant dans votre nouveau fichier Java:
import com.google.api.client.auth.oauth2.Credential; import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp; import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver; import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow; import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.http.javanet.NetHttpTransport; import com.google.api.client.json.JsonFactory; import com.google.api.client.json.gson.GsonFactory; import com.google.api.client.util.store.FileDataStoreFactory; import com.google.api.services.keep.v1.Keep; import com.google.api.services.keep.v1.model.Note; import com.google.api.services.keep.v1.model.Section; import com.google.api.services.keep.v1.model.TextContent; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.security.GeneralSecurityException; import java.util.Collections; import java.util.List; public class KeepQuickstart { private static final String APPLICATION_NAME = "Google Keep API Java Quickstart"; private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance(); /** * Global instance of the scopes required by this quickstart. If modifying these scopes, delete * your previously saved tokens/ folder. */ private static final List<String> KEEP_SCOPES = Collections.singletonList("https://www.googleapis.com/auth/keep"); private static final String CREDENTIALS_FILE_PATH = "/credentials.json"; /** * Creates an authorized Credential object. * * @param HTTP_TRANSPORT The network HTTP Transport. * @return An authorized Credential object. * @throws IOException */ private static Credential getOAuthCredentials(final NetHttpTransport HTTP_TRANSPORT) throws IOException { // Load client secrets. InputStream in = KeepQuickstart.class.getResourceAsStream(CREDENTIALS_FILE_PATH); if (in == null) { throw new FileNotFoundException("Resource not found: " + CREDENTIALS_FILE_PATH); } GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in)); // Build flow and trigger user authorization request. GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder( HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, KEEP_SCOPES) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File("tokens"))) .setAccessType("offline") .build(); LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build(); return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { // Build a new authorized API client service. final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport(); Keep service = new Keep.Builder(HTTP_TRANSPORT, JSON_FACTORY, getOAuthCredentials(HTTP_TRANSPORT)) .setApplicationName(APPLICATION_NAME) .build(); Section noteBody = new Section().setText(new TextContent().setText("Finish preparations by tomorrow!")); Note newNote = new Note().setTitle("Customer call next week").setBody(noteBody); // Creates a new text note. service.notes().create(newNote).execute(); } }
Exécuter l'exemple
Exécutez l'exemple:
gradle run
-
La première fois que vous exécutez l'exemple, vous êtes invité à autoriser l'accès :
- Si vous n'êtes pas encore connecté à votre compte Google, connectez-vous lorsque vous y êtes invité. Si vous êtes connecté à plusieurs comptes, sélectionnez-en un pour l'autorisation.
- Cliquez sur Accepter.
Votre application Java s'exécute et appelle l'API Google Keep.
Les informations d'autorisation sont stockées dans le système de fichiers. Par conséquent, la prochaine fois que vous exécuterez l'exemple de code, vous ne serez pas invité à vous authentifier.
Étapes suivantes
- Résoudre les problèmes d'authentification et d'autorisation
- Documentation de référence de l'API Google Keep
- Documentation sur le client des API Google pour Java
- Documentation Javadoc de l'API Google Keep