Les guides de démarrage rapide expliquent comment configurer et exécuter une application qui appelle un API Google Workspace.
Les guides de démarrage rapide de Google Workspace utilisent les bibliothèques clientes des API pour gérer certaines les détails du flux d'authentification et d'autorisation. Nous vous recommandons vous utilisez les bibliothèques clientes pour vos propres applications. Ce guide de démarrage rapide utilise une approche d'authentification simplifiée, adaptée à un test environnement. Pour un environnement de production, nous vous recommandons de vous familiariser authentification et autorisation avant Choisir les identifiants d'accès adaptés à 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 sur lequel Google Keep est 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 particulier de compte utilisé par une application, qu'une personne. Vous pouvez utiliser un compte de service pour accéder aux données ou effectuer des actions par le compte robot, ou d'accéder aux données pour le compte de 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 au menu > IAM et Administrateur > Comptes de service. .
- Cliquez sur Créer un compte de service.
- Renseignez 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: indiquez les utilisateurs ou les groupes autorisés à gérer ce compte de service et à y effectuer des actions. Pour en savoir plus, consultez Gérer l'emprunt 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 ces identifiants sous la forme d'une paire de clés publique/privée. Ces identifiants sont utilisés par votre code pour autoriser les actions du compte de service dans votre application. <ph type="x-smartling-placeholder">- </ph>
- Dans la console Google Cloud, accédez au menu > IAM et Administrateur > 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.
Votre nouvelle paire de clés publique/privée est générée et téléchargée sur votre machine comme un nouveau fichier. Enregistrez le fichier JSON téléchargé sous le nom
credentials.json
dans votre dans le répertoire de travail actuel. Ce fichier est la seule copie de cette clé. Pour savoir comment stocker votre clé en toute sécurité, consultez Gérer des 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, votre compte de service doit disposer d'une délégation d'autorité au niveau du domaine la console d'administration Google Workspace par un compte super-administrateur. Pour plus pour en savoir plus, consultez Déléguer une autorité au niveau du domaine à un compte de service- Dans la console Google Cloud, accédez au menu > IAM et Administrateur > 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 approprié, cliquez sur Accédez à la console d'administration Google Workspace, puis connectez-vous à l'aide d'un 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 de votre compte de service et la liste des champs d'application OAuth pour qu'ils puissent effectuer les étapes suivantes dans la console d'administration.
- Dans la console d'administration Google, accédez au 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 "Numéro client", , collez l'ID client que vous avez copié précédemment.
- Sous "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éfinis 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 téléchargée précédemment.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 nommé correspond à la valeurmainClassName
de 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:
<ph type="x-smartling-placeholder">
- </ph>
- 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 un compte à utiliser pour l'autorisation.
- Cliquez sur Accepter.
Votre application Java exécute et appelle l'API Google Keep.
Les informations d'autorisation étant stockées dans le système de fichiers, la prochaine fois que vous exécuterez l'exemple vous n'êtes pas invité à fournir d'autorisation.
É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 sur l'API Google Keep