Dalam catatan blog ini, kami akan melalui proses mencipta pautan Google Meet secara automatik dengan membuat acara Kalendar Google menggunakan API Kalendar Google. Kami akan menggunakan akaun perkhidmatan untuk mengesahkan, membolehkan anda membuat acara bagi pihak pengguna dalam domain Google Workspace anda.
Sebelum kami bermula, pastikan anda mempunyai perkara berikut:
Anda memerlukan beberapa pakej Node.js untuk berinteraksi dengan API Google dan mengendalikan tandatangan JWT:
npm install google-auth-library jsonwebtoken node-fetch
Seterusnya, kami akan menulis skrip Node.js untuk menjana JWT (JSON Web Token) untuk mengesahkan akaun perkhidmatan.
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();
Sekarang, gunakan JWT untuk mendapatkan token OAuth 2.0 daripada titik akhir token OAuth 2.0 Google:
npm install google-auth-library jsonwebtoken node-fetch
Dengan menggunakan token akses, kami kini boleh membuat acara Kalendar Google dengan pautan 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();
Gabungkan semua bahagian dan jalankan skrip untuk mencipta acara Google Meet secara automatik.
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; }
Dengan langkah di atas, anda boleh membuat acara Kalendar Google dengan pautan Google Meet secara automatik, menggunakan akaun perkhidmatan dan Perwakilan Kuasa Seluruh Domain. Kaedah ini sesuai untuk mengautomasikan mesyuarat dalam domain Google Workspace.
Dengan mendayakan Perwakilan Seluruh Domain dan mengkonfigurasi akaun perkhidmatan untuk menyamar sebagai pengguna, anda boleh mengakses dan mengurus acara Kalendar Google secara pengaturcaraan, yang sangat berguna untuk persekitaran perusahaan.
Selamat pengekodan! ✨
Atas ialah kandungan terperinci Mengautomasikan Penciptaan Google Meet. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!