이 블로그 게시물에서는 Google Calendar API를 사용하여 Google 캘린더 이벤트를 생성하여 Google Meet 링크를 자동으로 생성하는 과정을 살펴보겠습니다. 인증을 위해 서비스 계정을 사용하므로 Google Workspace 도메인의 사용자를 대신하여 이벤트를 생성할 수 있습니다.
시작하기 전에 다음 사항을 확인하세요.
Google API와 상호작용하고 JWT 서명을 처리하려면 몇 가지 Node.js 패키지가 필요합니다.
npm install google-auth-library jsonwebtoken node-fetch
다음으로 서비스 계정을 인증하기 위해 JWT(JSON 웹 토큰)를 생성하는 Node.js 스크립트를 작성하겠습니다.
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();
이제 JWT를 사용하여 Google의 OAuth 2.0 토큰 엔드포인트에서 OAuth 2.0 토큰을 얻으세요.
npm install google-auth-library jsonwebtoken node-fetch
이제 액세스 토큰을 사용하여 Google Meet 링크가 포함된 Google 캘린더 일정을 만들 수 있습니다.
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();
모든 부분을 결합하고 스크립트를 실행하면 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; }
위 단계에 따라 서비스 계정과 도메인 전체 권한 위임을 사용하여 Google Meet 링크가 포함된 Google 캘린더 일정을 자동으로 만들 수 있습니다. 이 방법은 Google Workspace 도메인에서 회의를 자동화하는 데 적합합니다.
도메인 전체 위임을 활성화하고 사용자를 가장하도록 서비스 계정을 구성하면 프로그래밍 방식으로 Google 캘린더 이벤트에 액세스하고 관리할 수 있으며 이는 기업 환경에 매우 유용합니다.
즐거운 코딩하세요! ✨
위 내용은 Google Meet 생성 자동화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!