Node.js क्विकस्टार्ट

क्विकस्टार्ट, ऐसे ऐप्लिकेशन को सेट अप करने और चलाने का तरीका बताता है जो Google Workspace API.

Google Workspace क्विकस्टार्ट, एपीआई क्लाइंट लाइब्रेरी का इस्तेमाल करके, पुष्टि करने और अनुमति देने के फ़्लो की जानकारी. हमारा सुझाव है कि की मदद से अपने ऐप्लिकेशन के लिए क्लाइंट लाइब्रेरी का इस्तेमाल किया हो. यह क्विकस्टार्ट पुष्टि करने का आसान तरीका, जो टेस्ट के लिए सही है पर्यावरण को ध्यान में रखकर काम करना. प्रोडक्शन एनवायरमेंट के लिए, हमारा सुझाव है कि पुष्टि करना और अनुमति देना होना ऐक्सेस क्रेडेंशियल चुनना जो आपके ऐप्लिकेशन के लिए सही हों.

ऐसा Node.js कमांड-लाइन ऐप्लिकेशन बनाएं जो Google Classroom एपीआई.

मकसद

  • अपना एनवायरमेंट सेट अप करें.
  • क्लाइंट लाइब्रेरी इंस्टॉल करें.
  • सैंपल सेट अप करें.
  • सैंपल चलाएं.

ज़रूरी शर्तें

इस क्विकस्टार्ट को चलाने के लिए, आपको इन ज़रूरी शर्तों को पूरा करना होगा:

  • आपके पास ऐसा Google for Education खाता होना चाहिए जिसमें Google Classroom चालू हो.

अपना एनवायरमेंट सेट अप करें

इस क्विकस्टार्ट को पूरा करने के लिए, अपना एनवायरमेंट सेट अप करें.

इस एपीआई को चालू करें

Google API का इस्तेमाल करने से पहले, आपको उन्हें Google Cloud प्रोजेक्ट में चालू करना होगा. किसी एक Google Cloud प्रोजेक्ट में, एक या उससे ज़्यादा एपीआई चालू किए जा सकते हैं.

अगर इस क्विकस्टार्ट को पूरा करने के लिए, किसी नए Google Cloud प्रोजेक्ट का इस्तेमाल किया जा रहा है, तो कॉन्फ़िगर करें OAuth के लिए सहमति देने वाली स्क्रीन पर जाएं और खुद को टेस्ट उपयोगकर्ता के तौर पर जोड़ें. अगर आपने पहले आपने अपने Cloud प्रोजेक्ट के लिए यह चरण पूरा किया है, तो अगले सेक्शन पर जाएं.

  1. Google Cloud Console में, मेन्यू पर जाएं > एपीआई और सेवाएं > OAuth की सहमति वाली स्क्रीन.

    उस स्क्रीन पर जाएं जहां OAuth के लिए सहमति दी जाती है

  2. उपयोगकर्ता टाइप के लिए इंटरनल चुनें. इसके बाद, बनाएं पर क्लिक करें.
  3. ऐप्लिकेशन रजिस्ट्रेशन फ़ॉर्म भरें. इसके बाद, सेव करें और जारी रखें पर क्लिक करें.
  4. फ़िलहाल, दायरों को जोड़ना स्किप किया जा सकता है. इसके बाद, सेव करें और जारी रखें पर क्लिक करें. भविष्य में, जब आप अपने अगर आपका संगठन Google Workspace का इस्तेमाल करता है, तो आपको उपयोगकर्ता टाइप को बदलकर बाहरी करना होगा. इसके बाद, अनुमति के वे दायरे जोड़ें जो आपके ऐप्लिकेशन के लिए ज़रूरी हैं.

  5. अपने ऐप्लिकेशन रजिस्ट्रेशन की खास जानकारी देखें. बदलाव करने के लिए, बदलाव करें पर क्लिक करें. अगर ऐप्लिकेशन पंजीकरण के लिए ठीक लगता है, तो डैशबोर्ड पर वापस जाएं पर क्लिक करें.

डेस्कटॉप ऐप्लिकेशन के लिए क्रेडेंशियल को अनुमति दें

असली उपयोगकर्ताओं की पुष्टि करने और अपने ऐप्लिकेशन में उपयोगकर्ता का डेटा ऐक्सेस करने के लिए, आपको ये काम करने होंगे एक या उससे ज़्यादा OAuth 2.0 क्लाइंट आईडी बनाएं. Client-ID का इस्तेमाल, के लिए एक ऐप्लिकेशन बनाया है. अगर आपका ऐप्लिकेशन एक से ज़्यादा प्लैटफ़ॉर्म पर चलता है, आपको हर प्लैटफ़ॉर्म के लिए एक अलग क्लाइंट आईडी बनाना होगा.
  1. Google Cloud Console में, मेन्यू > एपीआई और सेवाएं > क्रेडेंशियल.

    क्रेडेंशियल पर जाएं

  2. क्रेडेंशियल बनाएं > OAuth क्लाइंट आईडी पर क्लिक करें.
  3. ऐप्लिकेशन टाइप > डेस्कटॉप ऐप्लिकेशन पर क्लिक करें.
  4. नाम फ़ील्ड में, क्रेडेंशियल के लिए कोई नाम लिखें. यह नाम सिर्फ़ Google Cloud Console में दिखता है.
  5. बनाएं पर क्लिक करें. OAuth क्लाइंट की बनाई गई स्क्रीन दिखेगी. इसमें आपका नया क्लाइंट आईडी और क्लाइंट सीक्रेट दिखेगा.
  6. ठीक है पर क्लिक करें. नया क्रेडेंशियल, OAuth 2.0 क्लाइंट आईडी के तहत दिखता है.
  7. डाउनलोड की गई JSON फ़ाइल को credentials.json के तौर पर सेव करें और फ़ाइल को अपनी वर्किंग डायरेक्ट्री में सेव कर सकते हैं.

क्लाइंट लाइब्रेरी इंस्टॉल करना

  • एनपीएम का इस्तेमाल करके लाइब्रेरी इंस्टॉल करें:

    npm install googleapis@95 @google-cloud/local-auth@2.1.0 --save
    

सैंपल सेट अप करना

  1. अपनी वर्किंग डायरेक्ट्री में, index.js नाम की फ़ाइल बनाएं.

  2. फ़ाइल में, यह कोड चिपकाएं:

    classroom/quickstart/index.js
    const fs = require('fs').promises;
    const path = require('path');
    const process = require('process');
    const {authenticate} = require('@google-cloud/local-auth');
    const {google} = require('googleapis');
    
    // If modifying these scopes, delete token.json.
    const SCOPES = ['https://www.googleapis.com/auth/classroom.courses.readonly'];
    // The file token.json stores the user's access and refresh tokens, and is
    // created automatically when the authorization flow completes for the first
    // time.
    const TOKEN_PATH = path.join(process.cwd(), 'token.json');
    const CREDENTIALS_PATH = path.join(process.cwd(), 'credentials.json');
    
    /**
     * Reads previously authorized credentials from the save file.
     *
     * @return {Promise<OAuth2Client|null>}
     */
    async function loadSavedCredentialsIfExist() {
      try {
        const content = await fs.readFile(TOKEN_PATH);
        const credentials = JSON.parse(content);
        return google.auth.fromJSON(credentials);
      } catch (err) {
        return null;
      }
    }
    
    /**
     * Serializes credentials to a file compatible with GoogleAuth.fromJSON.
     *
     * @param {OAuth2Client} client
     * @return {Promise<void>}
     */
    async function saveCredentials(client) {
      const content = await fs.readFile(CREDENTIALS_PATH);
      const keys = JSON.parse(content);
      const key = keys.installed || keys.web;
      const payload = JSON.stringify({
        type: 'authorized_user',
        client_id: key.client_id,
        client_secret: key.client_secret,
        refresh_token: client.credentials.refresh_token,
      });
      await fs.writeFile(TOKEN_PATH, payload);
    }
    
    /**
     * Load or request or authorization to call APIs.
     *
     */
    async function authorize() {
      let client = await loadSavedCredentialsIfExist();
      if (client) {
        return client;
      }
      client = await authenticate({
        scopes: SCOPES,
        keyfilePath: CREDENTIALS_PATH,
      });
      if (client.credentials) {
        await saveCredentials(client);
      }
      return client;
    }
    
    /**
     * Lists the first 10 courses the user has access to.
     *
     * @param {google.auth.OAuth2} auth An authorized OAuth2 client.
     */
    async function listCourses(auth) {
      const classroom = google.classroom({version: 'v1', auth});
      const res = await classroom.courses.list({
        pageSize: 10,
      });
      const courses = res.data.courses;
      if (!courses || courses.length === 0) {
        console.log('No courses found.');
        return;
      }
      console.log('Courses:');
      courses.forEach((course) => {
        console.log(`${course.name} (${course.id})`);
      });
    }
    
    authorize().then(listCourses).catch(console.error);

सैंपल चलाएं

  1. अपनी वर्किंग डायरेक्ट्री में, सैंपल चलाएं:

    node .
    
  1. पहली बार सैंपल चलाने पर, आपको ऐक्सेस की अनुमति देने के लिए कहा जाता है:
    1. अगर आपने अपने Google खाते में पहले से साइन इन नहीं किया है, तो मांगे जाने पर साइन इन करें. अगर आपने आपने कई खातों में साइन इन किया है, तो अनुमति देने के लिए एक खाता चुनें.
    2. स्वीकार करें पर क्लिक करें.

    आपका Nodejs ऐप्लिकेशन, Google Classroom API को चलाता है और उसे कॉल करता है.

    अनुमति की जानकारी फ़ाइल सिस्टम में सेव होती है, इसलिए अगली बार सैंपल चलाने पर कोड नहीं है, तो आपको प्राधिकरण के लिए संकेत नहीं दिया जाता.

अगले चरण