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 Node.js qui envoie des requêtes à l'API Drive Labels.
Objectifs
- configurer votre environnement ;
- Installez la bibliothèque cliente.
- Configurez l'exemple.
- Exécutez l'exemple.
Prérequis
- Node.js et npm installés
- Un projet Google Cloud.
- Un compte Google.
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 Drive Labels.
Autoriser des identifiants pour une application de bureau
Pour authentifier les utilisateurs finaux et accéder aux données utilisateur dans votre application, vous devez créer un ou plusieurs ID client OAuth 2.0. Un ID client sert à identifier une application unique auprès des serveurs OAuth de Google. Si votre application s'exécute sur plusieurs plates-formes, vous devez créer un ID client distinct pour chacune d'elles.- Dans la console Google Cloud, accédez à Menu > > Clients.
- Cliquez sur Créer un client.
- Cliquez sur Type d'application > Application pour ordinateur.
- Dans le champ Nom, saisissez un nom pour l'identifiant. Ce nom n'apparaît que dans la console Google Cloud.
- Cliquez sur Créer.
Les identifiants nouvellement créés s'affichent sous "ID client OAuth 2.0".
- Enregistrez le fichier JSON téléchargé sous le nom
credentials.json
, puis déplacez-le dans votre répertoire de travail.
Installer la bibliothèque cliente
Installez les bibliothèques à l'aide de npm:
npm install googleapis@113 @google-cloud/local-auth@2.1.1 --save
Configurer l'exemple
Dans votre répertoire de travail, créez un fichier nommé
index.js
.Dans le fichier, collez le code suivant:
const fs = require('fs'); const readline = require('readline'); const {google} = require('googleapis'); // If modifying these scopes, delete token.json. const SCOPES = ['https://www.googleapis.com/auth/drive.labels.readonly']; // The file token.json stores the user's access and refresh tokens, and is // created automatically when the authorization flow completes for the first // time. const TOKEN_PATH = 'token.json'; // Load client secrets from a local file. fs.readFile('credentials.json', (err, content) => { if (err) return console.log('Error loading client secret file:', err); // Authorize a client with credentials, then call the Google Drive Labels // API. authorize(JSON.parse(content), listDriveLabels); }); /** * Create an OAuth2 client with the given credentials, and then execute the * given callback function. * @param {Object} credentials The authorization client credentials. * @param {function} callback The callback to call with the authorized client. */ function authorize(credentials, callback) { const {client_secret, client_id, redirect_uris} = credentials.installed; const oAuth2Client = new google.auth.OAuth2( client_id, client_secret, redirect_uris[0]); // Check if we have previously stored a token. fs.readFile(TOKEN_PATH, (err, token) => { if (err) return getNewToken(oAuth2Client, callback); oAuth2Client.setCredentials(JSON.parse(token)); callback(oAuth2Client); }); } /** * Get and store new token after prompting for user authorization, and then * execute the given callback with the authorized OAuth2 client. * @param {google.auth.OAuth2} oAuth2Client The OAuth2 client to get token for. * @param {getEventsCallback} callback The callback for the authorized client. */ function getNewToken(oAuth2Client, callback) { const authUrl = oAuth2Client.generateAuthUrl({ access_type: 'offline', scope: SCOPES, }); console.log('Authorize this app by visiting this url:', authUrl); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.question('Enter the code from that page here: ', (code) => { rl.close(); oAuth2Client.getToken(code, (err, token) => { if (err) return console.error('Error retrieving access token', err); oAuth2Client.setCredentials(token); // Store the token to disk for later program executions fs.writeFile(TOKEN_PATH, JSON.stringify(token), (err) => { if (err) return console.error(err); console.log('Token stored to', TOKEN_PATH); }); callback(oAuth2Client); }); }); } function listDriveLabels(auth) { const service = google.drivelabels({version: 'v2', auth}); const params = { 'view': 'LABEL_VIEW_FULL' }; service.labels.list(params, (err, res) => { if (err) return console.error('The API returned an error: ' + err); const labels = res.data.labels; if (labels) { labels.forEach((label) => { const name = label.name; const title = label.properties.title; console.log(`${name}\t${title}`); }); } else { console.log('No Labels'); } }); }
Exécuter l'exemple
Dans votre répertoire de travail, exécutez l'exemple:
node .
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, vous êtes invité à le faire. Si vous êtes connecté à plusieurs comptes, sélectionnez-en un pour l'autorisation.
- Cliquez sur Accepter.
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.
Vous avez créé votre première application Nodejs qui envoie des requêtes à l'API Drive Labels.
Étapes suivantes
- Résoudre les problèmes d'authentification et d'autorisation
- Section "Client Node.js des API Google" sur GitHub