Maison >interface Web >js tutoriel >Automatisation de la création de Google Meet

Automatisation de la création de Google Meet

DDD
DDDoriginal
2025-01-15 20:59:51712parcourir

Automating Google Meet Creation

Automatisation de la création de Google Meet avec l'API Google Calendar et le compte de service

Dans cet article de blog, nous expliquerons le processus de création automatique d'un lien Google Meet en créant un événement Google Calendar à l'aide de l'API Google Calendar. Nous utiliserons un compte de service pour nous authentifier, ce qui permettra de créer des événements au nom d'un utilisateur dans votre domaine Google Workspace.

Conditions préalables

Avant de commencer, assurez-vous d'avoir les éléments suivants :

  • Un Projet Google Cloud avec l'API Google Calendar activée.
  • Un Compte de service créé et son fichier de clé JSON téléchargé.
  • Délégation d'autorité à l'échelle du domaine activée pour le compte de service.
  • Accédez à votre console d'administration Google pour accorder les autorisations nécessaires.
  • Connaissance de base de Node.js et des requêtes API.

Étapes pour créer automatiquement Google Meet

Étape 1 : Configurer le projet Google Cloud

  1. Accédez à Google Cloud Console.
  2. Créez un nouveau projet ou sélectionnez-en un existant.
  3. Activez l'API Google Agenda :
    • Dans la barre latérale, recherchez API Calendrier et activez-la pour votre projet.
  4. Créer un Compte de service :
    • Dans la section IAM & Admin, créez un nouveau compte de service.
    • Téléchargez la clé JSON pour le compte de service.

Étape 2 : Activer la délégation à l'échelle du domaine

  1. Accédez à la Console d'administration Google (admin.google.com).
  2. Accédez à SécuritéContrôles APIGérer la délégation à l'échelle du domaine.
  3. Ajoutez un nouveau ID client pour le compte de service :
    • Recherchez l'ID client dans Google Cloud Console sous votre compte de service.
    • Ajoutez les étendues OAuth du compte de service, qui sont requises pour accéder à Google Agenda :
      • https://www.googleapis.com/auth/calendar
  4. Autorisez le compte de service à usurper l'identité des utilisateurs de votre domaine.

Étape 3 : Installer les packages requis

Vous avez besoin de quelques packages Node.js pour interagir avec l'API Google et gérer la signature JWT :

npm install google-auth-library jsonwebtoken node-fetch

Étape 4 : Générer un jeton JWT pour l'authentification

Ensuite, nous écrirons un script Node.js pour générer un JWT (JSON Web Token) pour authentifier le compte de service.

const fs = require('fs');
const jwt = require('jsonwebtoken');

// Path to your service account JSON file
const SERVICE_ACCOUNT_KEY_FILE = '/path/to/your/service-account-key.json';

// Scopes required for the API
const SCOPES = ['https://www.googleapis.com/auth/calendar']; // Full calendar access
const AUDIENCE = 'https://oauth2.googleapis.com/token';

async function generateJWT() {
    try {
        // Read and parse the service account credentials
        const serviceAccount = JSON.parse(fs.readFileSync(SERVICE_ACCOUNT_KEY_FILE, 'utf8'));

        // JWT payload
        const jwtPayload = {
            iss: serviceAccount.client_email,       // Issuer: service account email
            sub: 'user@example.com',                // Subject: email of the user whose calendar to access
            aud: AUDIENCE,                          // Audience: Google token URL
            scope: SCOPES.join(' '),                // Scopes: space-separated list of scopes
            iat: Math.floor(Date.now() / 1000),     // Issued at: current time in seconds
            exp: Math.floor(Date.now() / 1000) + 3600 // Expiration: 1 hour from now
        };

        // Sign the JWT using the service account's private key
        const signedJwt = jwt.sign(jwtPayload, serviceAccount.private_key, { algorithm: 'RS256' });

        console.log('Generated JWT:', signedJwt);
    } catch (error) {
        console.error('Error generating JWT:', error);
    }
}

generateJWT();

Étape 5 : Échangez JWT contre un jeton OAuth 2.0

Maintenant, utilisez le JWT pour obtenir un jeton OAuth 2.0 à partir du point de terminaison du jeton OAuth 2.0 de Google :

npm install google-auth-library jsonwebtoken node-fetch

Étape 6 : Créez un événement Google Agenda avec Google Meet Link

À l'aide du jeton d'accès, nous pouvons désormais créer un événement Google Agenda avec un lien Google Meet.

const fs = require('fs');
const jwt = require('jsonwebtoken');

// Path to your service account JSON file
const SERVICE_ACCOUNT_KEY_FILE = '/path/to/your/service-account-key.json';

// Scopes required for the API
const SCOPES = ['https://www.googleapis.com/auth/calendar']; // Full calendar access
const AUDIENCE = 'https://oauth2.googleapis.com/token';

async function generateJWT() {
    try {
        // Read and parse the service account credentials
        const serviceAccount = JSON.parse(fs.readFileSync(SERVICE_ACCOUNT_KEY_FILE, 'utf8'));

        // JWT payload
        const jwtPayload = {
            iss: serviceAccount.client_email,       // Issuer: service account email
            sub: 'user@example.com',                // Subject: email of the user whose calendar to access
            aud: AUDIENCE,                          // Audience: Google token URL
            scope: SCOPES.join(' '),                // Scopes: space-separated list of scopes
            iat: Math.floor(Date.now() / 1000),     // Issued at: current time in seconds
            exp: Math.floor(Date.now() / 1000) + 3600 // Expiration: 1 hour from now
        };

        // Sign the JWT using the service account's private key
        const signedJwt = jwt.sign(jwtPayload, serviceAccount.private_key, { algorithm: 'RS256' });

        console.log('Generated JWT:', signedJwt);
    } catch (error) {
        console.error('Error generating JWT:', error);
    }
}

generateJWT();

Étape 7 : Exécutez le processus complet

Combinez toutes les parties et exécutez le script pour créer automatiquement l'événement Google Meet.

const fetch = require('node-fetch');

async function getAccessToken(signedJwt) {
    const response = await fetch('https://oauth2.googleapis.com/token', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
        },
        body: new URLSearchParams({
            'grant_type': 'urn:ietf:params:oauth:grant-type:jwt-bearer',
            'assertion': signedJwt
        })
    });
    const data = await response.json();
    return data.access_token;
}

Conclusion

Avec les étapes ci-dessus, vous pouvez créer automatiquement des événements Google Agenda avec des liens Google Meet, à l'aide d'un compte de service et d'une délégation d'autorité à l'échelle du domaine. Cette méthode est parfaite pour automatiser les réunions dans un domaine Google Workspace.

En activant la délégation à l'échelle du domaine et en configurant le compte de service pour usurper l'identité des utilisateurs, vous pouvez accéder et gérer les événements de Google Agenda par programmation, ce qui est extrêmement utile pour les environnements d'entreprise.

Bon codage ! ✨

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn