परिचय कोविड के बाद से मेरा कैलेंडर स्टैंड-अप, टीम मीटिंग और क्लाइंट कॉल से भरा हुआ है। हालाँकि, किसी कार्यक्रम का शेड्यूल बनाना और मेहमानों को आमंत्रित करना उबाऊ काम है। एक शुक्रवार को, इन पर बहुत समय बिताने के बाद, मैंने सोचा - मैं इस पर इतना समय क्यों खर्च कर रहा हूं? इस प्रकार, मेरे मन में अपने काम को सरल बनाने के लिए एक इवेंट शेड्यूलर बनाने का विचार आया! इस लेख में, मैं आपको दिखाऊंगा कि एक Nodejs एप्लिकेशन कैसे बनाया जाए जो ईवेंट बना सके और Google Meet लिंक के साथ स्वचालित रूप से ईमेल आमंत्रण भेज सके। उत्साहित हो? मैं भी. तो, अब और देरी न करते हुए! चलो शुरू करो! परियोजना सेटअप: 1. Node.js प्रोजेक्ट बनाएं: अपना प्रोजेक्ट शुरू करने के लिए, हमें Node.js वातावरण सेट अप करना होगा। तो, चलिए एक नोड प्रोजेक्ट बनाते हैं। टर्मिनल में निम्न कमांड चलाएँ। npm init -y इससे एक नया Node.js प्रोजेक्ट आरंभ हो जाएगा। 2. निर्भरताएं स्थापित करें: अब, हम अपनी परियोजना की आवश्यक निर्भरताएँ स्थापित करेंगे। npm install express googleapis dotenv इससे निम्नलिखित पैकेज स्थापित हो जाएंगे: एक्सप्रेस: Node.js के लिए एक लोकप्रिय वेब फ्रेमवर्क dotenv: फ़ाइल से पर्यावरण चर लोड करता है। .env googleapis: विभिन्न Google API तक पहुंच प्रदान करता है 3. पर्यावरण चर सेटअप करें: इसके बाद, हम अपनी संवेदनशील जानकारी जैसे API क्रेडेंशियल्स को सुरक्षित रूप से संग्रहीत करने के लिए एक फ़ोल्डर बनाएंगे। .env //.env PORT = YOUR_PORT || 8000 CLIENT_ID = YOUR_CLIENT_ID CLIENT_SECRET = YOUR_CLIENT_SECRET REDIRECT_URL = http://localhost:8000/auth/redirect API_KEY = YOUR_API_KEY 4. एक्सप्रेस सर्वर बनाएं: अब, हम रूट डायरेक्टरी में फ़ाइल बनाएंगे और एक बेसिक एक्सप्रेस सर्वर सेट अप करेंगे। निम्न कोड देखें: index.js const express = require("express"); const dotenv = require("dotenv"); dotenv.config(); const app = express(); const port = process.env.PORT || 8000; app.get("/", (req, res) => { res.send("Hello World"); }); app.listen(port, () => { console.log(`Server running on port ${port}`); }); यहां, हम फ़ाइल से पोर्ट नंबर तक पहुंचने के लिए "dotenv" पैकेज का उपयोग कर रहे हैं। .env प्रोजेक्ट के शीर्ष पर, हम का उपयोग करके पर्यावरण चरों को लोड कर रहे हैं ताकि उन्हें संपूर्ण फ़ाइल में सुलभ बनाया जा सके। dotenv.config() Google कंसोल सेट अप करना सबसे पहले, हम पर जाएंगे। Google क्लाउड कंसोल फिर हमें यह डैशबोर्ड मिलेगा। (मैंने पहले एक प्रोजेक्ट बनाया है इसलिए मुझे यह मिल रहा है, आपको कुछ और मिल सकता है)। अब, हम एक नया प्रोजेक्ट शुरू करने के लिए 'न्यू प्रोजेक्ट' बटन पर क्लिक करेंगे। आगे, हमें कुछ इस तरह का मिलेगा। यहाँ, हम अपने प्रोजेक्ट का नाम और संगठन जोड़ेंगे। इस प्रोजेक्ट के लिए, मैं इसे "मेल-इंटीग्रेशन-डेमो" के रूप में रख रहा हूँ। फिर हम आगे बढ़ने के लिए क्रिएट बटन पर क्लिक करेंगे। इसके बाद, साइड नेविगेशन बार में, हमें "API और सेवाएँ" मिलेंगी। इस अनुभाग में, API और सेवाएँ सक्षम करने के लिए एक सबमेनू है। हम आगे बढ़ने के लिए उस पर क्लिक करेंगे। इसके बाद, हम उस API को सक्षम करेंगे जिसका उपयोग हम इस परियोजना में करेंगे, अर्थात Google कैलेंडर API. उसके बाद, हम OAuth सहमति स्क्रीन पर जाएँगे। यहाँ, हम उपयोगकर्ता प्रकार को External के रूप में चुनेंगे। और आगे बढ़ने के लिए Create बटन दबाएँगे। फिर, हम ऐप पंजीकरण पृष्ठ पर जाएंगे। यहां हम अपने एप्लिकेशन के बारे में अधिक जानकारी जोड़ेंगे। हम अपने ऐप का नाम और उपयोगकर्ता सहायता के लिए एक ईमेल पता जोड़कर शुरू करते हैं। इस परियोजना के लिए, मैं इसका नाम "अरिंदम का मेल एकीकरण" रखूंगा और समर्थन के लिए अपना स्वयं का ईमेल पता उपयोग करूंगा। इसके बाद, हमें एप्लिकेशन का दायरा परिभाषित करना होगा। स्कोप्स में, हम इस प्रोजेक्ट के लिए आवश्यक अनुमतियाँ जैसे और जोड़ेंगे। userinfo.email userinfo.profile इसके बाद, हम अपने एप्लिकेशन में एक परीक्षण उपयोगकर्ता जोड़ेंगे। बस इतना ही। हमारा एप्लीकेशन प्लेटफॉर्म पर पंजीकृत है। अब, हम अपना OAuth क्लाइंट ID सीक्रेट बनाएंगे। इसके लिए, हम क्रेडेंशियल बनाने वाले भाग पर जाएँगे। यहाँ, हम अपने एप्लिकेशन का प्रकार और उसका नाम जोड़ेंगे। इस प्रोजेक्ट के लिए, यह एक वेब एप्लिकेशन है, और इसका नाम है अरिंदम का मेल डेमो। इसके अलावा, हमने एक रीडायरेक्ट URL भी जोड़ा है। इस प्रोजेक्ट के लिए, यह होगा। http://localhost:8000/auth/redirect और फिर हमें OAuth क्रेडेंशियल मिल जाएगा। आगे, हम API कुंजियाँ बनाएंगे। यह सब करने के बाद, हम अपनी फ़ाइल को API कुंजियों और OAuth क्रेडेंशियल्स के साथ अपडेट करेंगे जो हमने पहले जेनरेट किए थे। .env इसके साथ, हमने इस प्रोजेक्ट के लिए अपना Google क्लाउड कंसोल सेट अप कर लिया है, अब अगले भाग पर चलते हैं OAuth 2 प्रमाणीकरण: अब तक, हमने अपना मूल प्रोजेक्ट सेटअप कर लिया है। अब, हम अपने प्रोजेक्ट में OAuth2 प्रमाणीकरण को एकीकृत करेंगे। यह हमारे एप्लिकेशन को Google सेवाओं के साथ सुरक्षित रूप से इंटरैक्ट करने में सक्षम बनाता है। इसके लिए, सबसे पहले, हम आवश्यक पैकेज को फ़ाइल में आयात करेंगे। index.js const express = require('express'); const { google } = require('googleapis'); const dotenv = require('dotenv'); फिर हम Google कैलेंडर API के लिए आवश्यक पहुँच का दायरा परिभाषित करेंगे. const scopes = ['https://www.googleapis.com/auth/calendar']; इसके बाद, हम फ़ाइल में संग्रहीत क्रेडेंशियल्स का उपयोग करके OAuth 2 क्लाइंट को कॉन्फ़िगर करेंगे। .env // OAuth 2 configuration const oauth2Client = new google.auth.OAuth2 ( process.env.CLIENT_ID, process.env.CLIENT_SECRET, process.env.REDIRECT_URL ); OAuth 2 कॉन्फ़िगरेशन के बाद, हम अपने उपयोगकर्ताओं को प्रमाणित करने के लिए एक रूट बनाएंगे। app.get('/auth', (req, res) => { const url = oauth2Client.generateAuthUrl ({ access_type: 'offline', scope: scopes }); res.redirect(url); } ); जब हमारे उपयोगकर्ता इस मार्ग पर जाएंगे, तो उन्हें गूगल के प्रमाणीकरण पृष्ठ पर पुनः निर्देशित किया जाएगा, जहां यह हमारे एप्लिकेशन के लिए विशिष्ट अनुमतियां मांगेगा। सफल प्रमाणीकरण के बाद, Google उपयोगकर्ता को हमारे रीडायरेक्ट URL ( ) पर रीडायरेक्ट करेगा /auth/redirect app.get("/auth/redirect", async (req, res) => { const {tokens} = await oauth2Client.getToken(req.query.code); oauth2Client.setCredentials(tokens); res.send('Authentication successful! Please return to the console.'); } ); यहाँ, हम क्वेरी से रिफ्रेश टोकन प्राप्त कर रहे हैं और उन्हें में क्रेडेंशियल के रूप में संग्रहीत कर रहे हैं। ये क्रेडेंशियल हमें Google कैलेंडर API से अनुरोध करने में मदद करेंगे। oauth2Client का पूरा कोड यहां दिया गया है: index.js //index.js const express = require('express'); const { google } = require('googleapis'); const dotenv = require('dotenv'); const app = express(); dotenv.config(); const port = process.env.PORT || 8000; app.get('/', (req, res) => { res.send('Hello World'); } ); // Define the scope of access for the Google Calendar API. const scopes = ['https://www.googleapis.com/auth/calendar']; // OAuth 2 configuration const oauth2Client = new google.auth.OAuth2 ( process.env.CLIENT_ID, process.env.CLIENT_SECRET, process.env.REDIRECT_URL ); app.get('/auth', (req, res) => { const url = oauth2Client.generateAuthUrl ({ access_type: 'offline', scope: scopes }); res.redirect(url); } ); app.get("/auth/redirect", async (req, res) => { const {tokens} = await oauth2Client.getToken(req.query.code); oauth2Client.setCredentials(tokens); res.send('Authentication successful! Please return to the console.'); } ); Google कैलेंडर पर ईवेंट शेड्यूल करना अब सबसे महत्वपूर्ण हिस्सा आता है! इस भाग में, हम Google कैलेंडर पर एक ईवेंट शेड्यूल करेंगे! आरंभ करने के लिए, हम Google कैलेंडर API क्लाइंट को आरंभ करेंगे. const calendar = google.calendar({ version: 'v3', auth: oauth2Client }); इसके बाद, हम एक इवेंट ऑब्जेक्ट बनाएंगे, जिसमें हम इवेंट के सभी विवरण जोड़ेंगे, जैसे सारांश, स्थान, प्रारंभ और समाप्ति समय, आदि। const event = { summary: 'Tech Talk with Arindam', location: 'Google Meet', description: "Demo event for Arindam's Blog Post.", start: { dateTime: "2024-03-14T19:30:00+05:30", timeZone: 'Asia/Kolkata' }, end: { dateTime: "2024-03-14T20:30:00+05:30", timeZone: 'Asia/Kolkata' }, }; उसके बाद हम एक रूट ( ) बनाएंगे जहां हम इवेंट बनाएंगे। /create-event यहां हम विधि का उपयोग करके उपयोगकर्ता के कैलेंडर में एक ईवेंट सम्मिलित कर रहे हैं। calendar.events.insert() app.get('/create-event', async (req, res) => { try { const result = await calendar.events.insert({ calendarId: 'primary', auth:oauth2Client, resource: event }); res.send({ status: 200, message: 'Event created', }); } catch (err) { console.log(err); res.send(err); } } ); इसके साथ, हम गूगल कैलेंडर पर ईवेंट को गतिशील रूप से शेड्यूल कर सकते हैं। Google मीट लिंक जोड़ना: अब तक हमने यह पता लगाया है कि Google कैलेंडर पर एक सरल ईवेंट कैसे बनाया जाता है। इस अनुभाग में, हम यह पता लगाएंगे कि उस ईवेंट में Google Meet लिंक कैसे जोड़ा जाता है! इसके लिए, हम पिछले सेक्शन में बनाए गए इवेंट ऑब्जेक्ट को अपडेट करेंगे। हम Google Meet लिंक के लिए निर्माण अनुरोध निर्दिष्ट करने के लिए एक प्रॉपर्टी जोड़ेंगे। conferenceData conferenceData: { createRequest: { requestId: uuid(), } }, हम इवेंट में मेहमानों को आमंत्रित करने के लिए एक प्रॉपर्टी भी जोड़ेंगे। यहाँ इसका एक सरल उदाहरण दिया गया है: attendees attendees: [ {email: 'arindammajumder2020@gmail.com'}, ] अब, इवेंट ऑब्जेक्ट इस तरह दिखता है: const event = { summary: 'Tech Talk with Arindam', location: 'Google Meet', description: "Demo event for Arindam's Blog Post.", start: { dateTime: "2024-03-14T19:30:00+05:30", timeZone: 'Asia/Kolkata' }, end: { dateTime: "2024-03-14T20:30:00+05:30", timeZone: 'Asia/Kolkata' }, colorId: 1, conferenceData: { createRequest: { requestId: uuid(), } }, attendees: [ {email: 'arindammajumder2020@gmail.com'}, ] }; इसके बाद, इवेंट सम्मिलन चरण में, हम इसमें पैरामीटर जोड़ेंगे। conferenceDataVersion const result = await calendar.events.insert({ calendarId: 'primary', auth:oauth2Client , conferenceDataVersion: 1, resource: event }); इससे Google Meet लिंक के साथ एक इवेंट तैयार हो जाएगा। हम लिंक को इस तरह प्रतिक्रिया के तौर पर भी शेयर कर सकते हैं: res.send({ status: 200, message: 'Event created', link: result.data.hangoutLink }); उपस्थित लोगों को अनुस्मारक भेजना: तो, हमारा प्रोजेक्ट लगभग पूरा हो चुका है, बस अंतिम टच बाकी है। अब तक, हमारा प्रोजेक्ट सीधे आमंत्रित अतिथियों के कैलेंडर में इवेंट को जोड़ देगा। हालाँकि, उन्हें इन घटनाओं के बारे में सूचित करने के लिए, हमें एक मेल भेजना होगा। इसके लिए, हमें इवेंट निर्माण भाग में एक पैरामीटर जोड़ना होगा। इसके साथ, एप्लिकेशन स्वचालित रूप से आमंत्रित मेहमानों को ईमेल भेजेगा। sendUpdates: 'all', const result = await calendar.events.insert({ calendarId: 'primary', auth:oauth2Client , conferenceDataVersion: 1 , sendUpdates: 'all', resource: event }); इस सुविधा के साथ, अब हमारी परियोजना ईवेंट निर्माण और ईमेल अधिसूचना दोनों को सहजता से संभालती है। एप्लिकेशन का परीक्षण: हमारे प्रोजेक्ट का कोडिंग वाला हिस्सा पूरा हो गया है। अब देखते हैं कि यह काम कर रहा है या नहीं! इसके लिए, हम परियोजना शुरू करेंगे! npm run start और हमने अपना सर्वर पोर्ट 8000 पर शुरू कर दिया है! अब, हम उपयोगकर्ता को प्रमाणित करने के लिए रूट पर जाएँगे। यह हमें कुछ इस तरह से रीडायरेक्ट करेगा: http://localhost:8000/auth/ यह एप्लिकेशन के लिए कुछ अनुमति मांगेगा। यह क्वेरी पैरामीटर के साथ रूट पर रीडायरेक्ट करेगा। code /auth/redirect उपयोगकर्ता को सफलतापूर्वक प्रमाणित करने के बाद, हम ईवेंट को शेड्यूल करने के लिए रूट पर जाएंगे। http://localhost:8000/create-event बहुत बढ़िया! इसका मतलब है कि हमारा ईवेंट Google Meet लिंक से बनाया गया है। यह सत्यापित करने के लिए कि ईवेंट निर्माण प्रक्रिया सही ढंग से काम कर रही है, आइए अपना Google कैलेंडर देखें कमाल है! हमारा इवेंट बन गया है, जिसका मतलब है कि इवेंट-निर्माण मार्ग पूरी तरह से काम कर रहा है! और हमें एक आमंत्रण मेल भी मिला: बहुत बढ़िया! हमारा एप्लीकेशन पूरी तरह से काम कर रहा है! इसके साथ ही, हमने अपने Node.js ऐप में Google कैलेंडर को एकीकृत कर दिया है। अगले लेखों में, हम Google कैलेंडर के साथ और अधिक उपयोग के मामलों का पता लगाएंगे। तब तक, बने रहिए! निष्कर्ष अगर आपको यह ब्लॉग पोस्ट मददगार लगी हो, तो कृपया इसे दूसरों के साथ शेयर करने पर विचार करें, जिन्हें इससे फ़ायदा हो सकता है। आप जावास्क्रिप्ट, रिएक्ट और अन्य वेब डेवलपमेंट विषयों पर अधिक सामग्री के लिए मुझे फ़ॉलो भी कर सकते हैं। सशुल्क सहयोग के लिए, मुझे इस पते पर मेल करें: arindammajumder2020@gmail.com , , और पर मुझसे जुड़ें। ट्विटर लिंक्डइन यूट्यूब गिटहब पढ़ने के लिए आपका शुक्रिया :)