L'API Google Calendar est un outil puissant pour gérer des événements et planifier des réunions par programmation. Ce didacticiel vous guidera dans l'intégration de l'API dans une application Node.js pour gérer l'authentification OAuth, récupérer les jetons d'accès et créer des événements. Nous aborderons également la gestion des redirections dans une application frontale pour une expérience utilisateur transparente.
La première étape consiste à permettre aux utilisateurs de s'authentifier avec leurs comptes Google et d'accorder l'accès pour gérer leurs calendriers. Ceci est réalisé en utilisant le protocole OAuth2.
Voici la méthode pour générer une URL d'authentification Google OAuth2 :
async googleAuthConsent() { try { // Read credentials from a file const credentials = JSON.parse( await promisify(fs.readFile)('./client_secrets.json', 'utf-8'), ); // change this with your redirect url const REDIRECT_URI = "http://localhost:3000"; const oauth2Client = new google.auth.OAuth2( credentials.web.client_id, credentials.web.client_secret, REDIRECT_URI, ); const scopes = ['https://www.googleapis.com/auth/calendar']; const authUrl = oauth2Client.generateAuthUrl({ access_type: 'offline', scope: scopes, }); return { message: 'Auth URL created successfully', url: authUrl, }; } catch (error) { throw new Error(error.message || 'Internal Server Error'); } }
Une fois que les utilisateurs se sont authentifiés via l'URL générée, ils sont redirigés vers votre application avec un code. Ce code est échangé contre des jetons.
async generateGoogleOAuthToken( data: { code: string; scope: string }, ) { try { const { code } = data; const credentials = JSON.parse( await promisify(fs.readFile)('./client_secrets.json', 'utf-8'), ); // change this with your redirect url const REDIRECT_URI = "http://localhost:3000"; const oauth2Client = new google.auth.OAuth2( credentials.web.client_id, credentials.web.client_secret, REDIRECT_URI, ); const { tokens } = await oauth2Client.getToken(code); // your logic for storing token i.g. database or file return { message: 'User OAuth Token Generated Successfully', token, }; } catch (error) { throw new Error(error.message || 'Internal Server Error'); } }
Une fois les jetons stockés en toute sécurité, vous pouvez désormais utiliser l'API Google Calendar pour créer des événements. Vous trouverez ci-dessous une méthode générique pour planifier des réunions, avec les détails de l'événement tels que l'heure, les participants, les rappels et un lien Google Meet facultatif.
Cette méthode permet d'obtenir les résultats suivants :
async googleAuthConsent() { try { // Read credentials from a file const credentials = JSON.parse( await promisify(fs.readFile)('./client_secrets.json', 'utf-8'), ); // change this with your redirect url const REDIRECT_URI = "http://localhost:3000"; const oauth2Client = new google.auth.OAuth2( credentials.web.client_id, credentials.web.client_secret, REDIRECT_URI, ); const scopes = ['https://www.googleapis.com/auth/calendar']; const authUrl = oauth2Client.generateAuthUrl({ access_type: 'offline', scope: scopes, }); return { message: 'Auth URL created successfully', url: authUrl, }; } catch (error) { throw new Error(error.message || 'Internal Server Error'); } }
Pour gérer la redirection après l'authentification Google, le frontend doit :
Exemple de flux :
Cette intégration est la première étape vers la création de puissantes fonctionnalités de planification dans vos applications NodeJS. La partie suivante couvrira la méthode générique de création d'événements. En combinaison avec une interface pour l'interaction utilisateur, vous pouvez créer une solution de planification robuste avec un minimum d'effort.
Restez à l'écoute pour la mise en œuvre complète et une présentation pas à pas de la gestion d'événements !
Si vous souhaitez voir ce tutoriel vidéo, veuillez commenter ci-dessous !
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!