Heim >Web-Frontend >js-Tutorial >Automatisierung der Google Meet-Erstellung

Automatisierung der Google Meet-Erstellung

DDD
DDDOriginal
2025-01-15 20:59:51711Durchsuche

Automating Google Meet Creation

Automatisieren Sie die Google Meet-Erstellung mit der Google Kalender-API und dem Dienstkonto

In diesem Blogbeitrag werden wir den Prozess der automatischen Erstellung eines Google Meet-Links durch die Erstellung eines Google Kalender-Ereignisses mithilfe der Google Kalender-API erklären. Zur Authentifizierung verwenden wir ein Dienstkonto, das es ermöglicht, Ereignisse im Namen eines Nutzers in Ihrer Google Workspace-Domäne zu erstellen.

Voraussetzungen

Bevor wir beginnen, stellen Sie sicher, dass Sie Folgendes haben:

  • Ein Google Cloud-Projekt mit aktivierter Google Kalender-API.
  • Ein Dienstkonto wurde erstellt und seine JSON-Schlüsseldatei heruntergeladen.
  • Domänenweite Delegation von Autorität für das Dienstkonto aktiviert.
  • Zugriff auf Ihre Google Admin-Konsole, um die erforderlichen Berechtigungen zu erteilen.
  • Grundkenntnisse über Node.js und API-Anfragen.

Schritte zum automatischen Erstellen von Google Meet

Schritt 1: Richten Sie das Google Cloud-Projekt ein

  1. Gehen Sie zur Google Cloud Console.
  2. Erstellen Sie ein neues Projekt oder wählen Sie ein vorhandenes aus.
  3. Aktivieren Sie die Google Kalender-API:
    • Suchen Sie in der Seitenleiste nach Kalender-API und aktivieren Sie es für Ihr Projekt.
  4. Erstellen Sie ein Dienstkonto:
    • Erstellen Sie im Abschnitt IAM & Admin ein neues Dienstkonto.
    • Laden Sie den JSON-Schlüssel für das Dienstkonto herunter.

Schritt 2: Aktivieren Sie die domänenweite Delegierung

  1. Gehen Sie zur Google Admin-Konsole (admin.google.com).
  2. Navigieren Sie zu SicherheitAPI-KontrollenDomänenweite Delegation verwalten.
  3. Fügen Sie eine neue Client-ID für das Dienstkonto hinzu:
    • Suchen Sie die Client-ID in der Google Cloud Console unter Ihrem Dienstkonto.
    • Fügen Sie die OAuth-Bereiche des Dienstkontos hinzu, die für den Zugriff auf Google Kalender erforderlich sind:
      • https://www.googleapis.com/auth/calendar
  4. Erteilen Sie dem Dienstkonto die Berechtigung, sich als Benutzer in Ihrer Domain auszugeben.

Schritt 3: Erforderliche Pakete installieren

Sie benötigen ein paar Node.js-Pakete, um mit der Google-API zu interagieren und die JWT-Signatur zu verarbeiten:

npm install google-auth-library jsonwebtoken node-fetch

Schritt 4: Generieren Sie ein JWT-Token für die Authentifizierung

Als nächstes schreiben wir ein Node.js-Skript, um ein JWT (JSON Web Token) zur Authentifizierung des Dienstkontos zu generieren.

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();

Schritt 5: Tauschen Sie JWT gegen OAuth 2.0-Token aus

Nun verwenden Sie das JWT, um ein OAuth 2.0-Token vom OAuth 2.0-Token-Endpunkt von Google zu erhalten:

npm install google-auth-library jsonwebtoken node-fetch

Schritt 6: Erstellen Sie ein Google Kalender-Ereignis mit Google Meet Link

Mithilfe des Zugriffstokens können wir jetzt einen Google Kalender-Termin mit einem Google Meet-Link erstellen.

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();

Schritt 7: Führen Sie den vollständigen Prozess aus

Kombinieren Sie alle Teile und führen Sie das Skript aus, um das Google Meet-Ereignis automatisch zu erstellen.

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;
}

Abschluss

Mit den oben genannten Schritten können Sie Google Kalender-Termine mit Google Meet-Links automatisch erstellen, indem Sie ein Dienstkonto und eine domänenweite Delegation von Befugnissen verwenden. Diese Methode eignet sich perfekt zum Automatisieren von Besprechungen in einer Google Workspace-Domäne.

Indem Sie die domänenweite Delegation aktivieren und das Dienstkonto so konfigurieren, dass es sich als Benutzer ausgibt, können Sie programmgesteuert auf Google Kalender-Ereignisse zugreifen und diese verwalten, was für Unternehmensumgebungen äußerst nützlich ist.

Viel Spaß beim Codieren! ✨

Das obige ist der detaillierte Inhalt vonAutomatisierung der Google Meet-Erstellung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn