paint-brush
मैंने NodeJs में इवेंट शेड्यूलर कैसे बनायाद्वारा@arindam1729
312 रीडिंग
312 रीडिंग

मैंने NodeJs में इवेंट शेड्यूलर कैसे बनाया

द्वारा Arindam Majumder 12m2024/08/18
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

इस लेख में, मैं आपको दिखाऊंगा कि Node.js एप्लिकेशन कैसे बनाया जाता है जो ईवेंट बना सकता है और Google Meet लिंक के साथ स्वचालित रूप से ईमेल आमंत्रण भेज सकता है। हम ईवेंट शेड्यूलर बनाने के लिए एक्सप्रेस फ्रेमवर्क का उपयोग करेंगे। शुरू करने के लिए, हमें एक node.js वातावरण सेट करना होगा और एक एक्सप्रेस सर्वर सेट करना होगा।
featured image - मैंने NodeJs में इवेंट शेड्यूलर कैसे बनाया
Arindam Majumder  HackerNoon profile picture

परिचय

कोविड के बाद से मेरा कैलेंडर स्टैंड-अप, टीम मीटिंग और क्लाइंट कॉल से भरा हुआ है।


हालाँकि, किसी कार्यक्रम का शेड्यूल बनाना और मेहमानों को आमंत्रित करना उबाऊ काम है। एक शुक्रवार को, इन पर बहुत समय बिताने के बाद, मैंने सोचा -

मैं इस पर इतना समय क्यों खर्च कर रहा हूं?

गंभीर रूप से निराश GIF

इस प्रकार, मेरे मन में अपने काम को सरल बनाने के लिए एक इवेंट शेड्यूलर बनाने का विचार आया!


इस लेख में, मैं आपको दिखाऊंगा कि एक 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}`); });

यहां, हम .env फ़ाइल से पोर्ट नंबर तक पहुंचने के लिए "dotenv" पैकेज का उपयोग कर रहे हैं।


प्रोजेक्ट के शीर्ष पर, हम dotenv.config() का उपयोग करके पर्यावरण चरों को लोड कर रहे हैं ताकि उन्हें संपूर्ण फ़ाइल में सुलभ बनाया जा सके।

Google कंसोल सेट अप करना

सबसे पहले, हम Google क्लाउड कंसोल पर जाएंगे।


फिर हमें यह डैशबोर्ड मिलेगा। (मैंने पहले एक प्रोजेक्ट बनाया है इसलिए मुझे यह मिल रहा है, आपको कुछ और मिल सकता है)।

गूगल क्लाउड कंसोल

अब, हम एक नया प्रोजेक्ट शुरू करने के लिए 'न्यू प्रोजेक्ट' बटन पर क्लिक करेंगे।

नया प्रोजेक्ट पेज


आगे, हमें कुछ इस तरह का मिलेगा। यहाँ, हम अपने प्रोजेक्ट का नाम और संगठन जोड़ेंगे। इस प्रोजेक्ट के लिए, मैं इसे "मेल-इंटीग्रेशन-डेमो" के रूप में रख रहा हूँ। फिर हम आगे बढ़ने के लिए क्रिएट बटन पर क्लिक करेंगे।


नई परियोजना का विवरण

इसके बाद, साइड नेविगेशन बार में, हमें "API और सेवाएँ" मिलेंगी। इस अनुभाग में, API और सेवाएँ सक्षम करने के लिए एक सबमेनू है। हम आगे बढ़ने के लिए उस पर क्लिक करेंगे।

एपीआई और सेवाएँ

इसके बाद, हम उस API को सक्षम करेंगे जिसका उपयोग हम इस परियोजना में करेंगे, अर्थात Google कैलेंडर API.

गूगल कैलेंडर एपीआई

उसके बाद, हम OAuth सहमति स्क्रीन पर जाएँगे। यहाँ, हम उपयोगकर्ता प्रकार को External के रूप में चुनेंगे। और आगे बढ़ने के लिए Create बटन दबाएँगे।

OAuth सहमति स्क्रीन


फिर, हम ऐप पंजीकरण पृष्ठ पर जाएंगे। यहां हम अपने एप्लिकेशन के बारे में अधिक जानकारी जोड़ेंगे। हम अपने ऐप का नाम और उपयोगकर्ता सहायता के लिए एक ईमेल पता जोड़कर शुरू करते हैं।


इस परियोजना के लिए, मैं इसका नाम "अरिंदम का मेल एकीकरण" रखूंगा और समर्थन के लिए अपना स्वयं का ईमेल पता उपयोग करूंगा।

ऐप जानकारी पृष्ठ

इसके बाद, हमें एप्लिकेशन का दायरा परिभाषित करना होगा।

कार्यक्षेत्र पृष्ठ

स्कोप्स में, हम इस प्रोजेक्ट के लिए आवश्यक अनुमतियाँ जैसे userinfo.email और userinfo.profile जोड़ेंगे।

चयनित क्षेत्र

इसके बाद, हम अपने एप्लिकेशन में एक परीक्षण उपयोगकर्ता जोड़ेंगे।

परीक्षण उपयोगकर्ता पृष्ठ

बस इतना ही। हमारा एप्लीकेशन प्लेटफॉर्म पर पंजीकृत है।


अब, हम अपना OAuth क्लाइंट ID सीक्रेट बनाएंगे। इसके लिए, हम क्रेडेंशियल बनाने वाले भाग पर जाएँगे।

गूगल कंसोल डैशबोर्ड

यहाँ, हम अपने एप्लिकेशन का प्रकार और उसका नाम जोड़ेंगे। इस प्रोजेक्ट के लिए, यह एक वेब एप्लिकेशन है, और इसका नाम है अरिंदम का मेल डेमो।

OAuth क्लाइंट आईडी

इसके अलावा, हमने एक रीडायरेक्ट URL भी जोड़ा है। इस प्रोजेक्ट के लिए, यह http://localhost:8000/auth/redirect होगा।

यूआरएल पुनर्निर्देशित करें

और फिर हमें OAuth क्रेडेंशियल मिल जाएगा।

OAuth क्लाइंट बनाया गया

आगे, हम API कुंजियाँ बनाएंगे।

API कुंजी निर्माण पृष्ठ

यह सब करने के बाद, हम अपनी .env फ़ाइल को API कुंजियों और OAuth क्रेडेंशियल्स के साथ अपडेट करेंगे जो हमने पहले जेनरेट किए थे।


इसके साथ, हमने इस प्रोजेक्ट के लिए अपना 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'];


इसके बाद, हम .env फ़ाइल में संग्रहीत क्रेडेंशियल्स का उपयोग करके OAuth 2 क्लाइंट को कॉन्फ़िगर करेंगे।

 // 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.'); } );


यहाँ, हम क्वेरी से रिफ्रेश टोकन प्राप्त कर रहे हैं और उन्हें oauth2Client में क्रेडेंशियल के रूप में संग्रहीत कर रहे हैं। ये क्रेडेंशियल हमें Google कैलेंडर API से अनुरोध करने में मदद करेंगे।


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: '[email protected]'}, ]


अब, इवेंट ऑब्जेक्ट इस तरह दिखता है:

 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: '[email protected]'}, ] };


इसके बाद, इवेंट सम्मिलन चरण में, हम इसमें 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 रूट पर रीडायरेक्ट करेगा।

/auth/रीडायरेक्ट रूट

उपयोगकर्ता को सफलतापूर्वक प्रमाणित करने के बाद, हम ईवेंट को शेड्यूल करने के लिए http://localhost:8000/create-event रूट पर जाएंगे।

http://localhost:8000/create-event रूट

बहुत बढ़िया! इसका मतलब है कि हमारा ईवेंट Google Meet लिंक से बनाया गया है।


यह सत्यापित करने के लिए कि ईवेंट निर्माण प्रक्रिया सही ढंग से काम कर रही है, आइए अपना Google कैलेंडर देखें

गूगल कैलेंडर

कमाल है! हमारा इवेंट बन गया है, जिसका मतलब है कि इवेंट-निर्माण मार्ग पूरी तरह से काम कर रहा है! और हमें एक आमंत्रण मेल भी मिला:

ईवेंट आमंत्रण मेल.

बहुत बढ़िया! हमारा एप्लीकेशन पूरी तरह से काम कर रहा है!


इसके साथ ही, हमने अपने Node.js ऐप में Google कैलेंडर को एकीकृत कर दिया है। अगले लेखों में, हम Google कैलेंडर के साथ और अधिक उपयोग के मामलों का पता लगाएंगे।


तब तक, बने रहिए!

निष्कर्ष

अगर आपको यह ब्लॉग पोस्ट मददगार लगी हो, तो कृपया इसे दूसरों के साथ शेयर करने पर विचार करें, जिन्हें इससे फ़ायदा हो सकता है। आप जावास्क्रिप्ट, रिएक्ट और अन्य वेब डेवलपमेंट विषयों पर अधिक सामग्री के लिए मुझे फ़ॉलो भी कर सकते हैं।


सशुल्क सहयोग के लिए, मुझे इस पते पर मेल करें: [email protected]


ट्विटर , लिंक्डइन , यूट्यूब और गिटहब पर मुझसे जुड़ें।


पढ़ने के लिए आपका शुक्रिया :)

धन्यवाद