शुरुआती जानकारी

Classroom और तीसरे पक्ष के टूल, दोनों का इस्तेमाल करने वाले शिक्षकों को कई प्लैटफ़ॉर्म पर अपने कोर्स और नामावली सेट अप करने में समस्या आती है. इसे मैन्युअल तरीके से किया जा सकता है. इसके लिए, CSV फ़ाइल अपलोड की जा सकती है या एक-एक करके ईमेल पते डाले जा सकते हैं. हालांकि, Classroom API की मदद से तीसरे पक्ष के टूल, शिक्षकों के काम को कम कर सकते हैं. इसके लिए, उन्हें एपीआई के सबसे सामान्य इस्तेमाल के उदाहरण के साथ इंटिग्रेट करना होगा: रोस्टर इंपोर्ट करना.

छात्र-छात्राओं की सूची इंपोर्ट करने की सुविधा की मदद से, तीसरे पक्ष के प्लैटफ़ॉर्म, कोर्स के हिसाब से कोर्स का मेटाडेटा, शिक्षकों, और छात्र-छात्राओं की जानकारी पा सकते हैं. इसके लिए, शिक्षक या एडमिन की अनुमति होना ज़रूरी है. शिक्षक, उन कोर्स की जानकारी वापस पा सकते हैं जिन्हें वे पढ़ाते हैं. वहीं, एडमिन के पास पूरे डोमेन के सभी कोर्स की जानकारी का ऐक्सेस होता है. इस सुविधा की मदद से, डेवलपर अपने प्लैटफ़ॉर्म पर Classroom में छात्र-छात्राओं की सूचियां आसानी से जोड़ सकते हैं. वे ऐसा किसी एक शिक्षक के लेवल पर या एडमिन क्रेडेंशियल का इस्तेमाल करके पूरे डोमेन के लिए कर सकते हैं.

रोस्टर इंपोर्ट इंटिग्रेशन कैसा दिख सकता है, इसकी तकनीकी जानकारी पर जाने से पहले, आइए सबसे पहले वर्कफ़्लो का एक उदाहरण देखें:

  1. तीसरे पक्ष के ऐप्लिकेशन में, शिक्षक के पास Classroom कोर्स इंपोर्ट करने का विकल्प होता है.

  2. तीसरे पक्ष का ऐप्लिकेशन, Classroom API के ज़रिए courses.list तरीके को कॉल करता है. इससे, शिक्षक के सभी कोर्स की जानकारी वाला JSON रिस्पॉन्स मिलता है.

  3. json रिस्पॉन्स से, तीसरे पक्ष का ऐप्लिकेशन शिक्षक के कोर्स के टाइटल दिखाता है, ताकि शिक्षक उनमें से किसी एक को चुन सके. अगले चरण पर जाने के लिए, ऐप्लिकेशन को कोर्स आईडी ट्रैक करने होंगे.

  4. चुने गए कोर्स आईडी की मदद से, तीसरे पक्ष का ऐप्लिकेशन students.list और teachers.list तरीकों को कॉल करता है. साथ ही, अपनी वेबसाइट पर सभी नाम दिखाता है, ताकि शिक्षक इंपोर्ट करने की पुष्टि कर सकें.

  5. students.list और teachers.list रिस्पॉन्स JSON में मिले ईमेल का इस्तेमाल करके, तीसरे पक्ष का ऐप्लिकेशन उपयोगकर्ताओं को अपने प्लैटफ़ॉर्म पर इंपोर्ट किए गए नए कोर्स में शामिल होने का न्योता देता है.

वर्कफ़्लो में बताए गए हर तरीके के लिए, एपीआई एक्सप्लोरर का इस्तेमाल किया जा सकता है. इससे यह देखा जा सकता है कि हर तरीका कैसे काम करता है. हमारा सुझाव है कि इस गाइड को पूरा करने से पहले, यहां दिए गए लेख पढ़ लें:

  1. Classroom API की मदद से कोर्स मैनेज करना
  2. छात्र-छात्राओं और शिक्षकों को मैनेज करना

ऊपर बताई गई रोस्टर इंपोर्ट करने की प्रोसेस के बारे में खास जानकारी देने वाला डायग्राम.

शुरू करें

Classroom की रोस्टर इंपोर्ट करने से जुड़ी खास जानकारी लागू करने से पहले, आपको यह तय करना होगा कि एपीआई के ज़रिए आपको कोर्स और उपयोगकर्ता की कौनसी जानकारी वापस लानी है. रेफ़रंस दस्तावेज़ में, कोर्स के लिए उपलब्ध मेटाडेटा देखा जा सकता है. हालांकि, यहां कुछ ज़रूरी या सामान्य फ़ील्ड की खास जानकारी दी गई है:

फ़ील्ड इस्तेमाल करें
आईडी छात्र-छात्राओं या शिक्षकों की जानकारी पाने के लिए, एपीआई अनुरोधों के लिए यह कुकी ज़रूरी है
नाम उपयोगकर्ता के लिए इसे इस्तेमाल करना आसान होता है. इसलिए, इसे आपकी वेबसाइट पर दिखाने का सुझाव दिया जाता है
ownerId पूरे डोमेन के लिए इंपोर्ट करते समय, इस फ़ील्ड की ज़रूरत होती है. इससे किसी कोर्स के मुख्य शिक्षक की सही पहचान की जा सकती है

कोर्स की यह जानकारी, ऊपर दिए गए वर्कफ़्लो के courses.list चरण में वापस लाई जाती है. इस अनुरोध में, अनुरोध के कुछ पैरामीटर तय किए जा सकते हैं. इस तरीके के लिए, इनमें से कोई भी पैरामीटर ज़रूरी नहीं है. हालांकि, कुछ सुझाए गए पैरामीटर ये हैं:

पैरामीटर इस्तेमाल करें
courseState अगर इस पैरामीटर को नहीं दिया जाता है, तो एपीआई, कोर्स की सभी छह स्थितियों के हिसाब से कोर्स दिखाएगा. हमारा सुझाव है कि ACTIVE एट्रिब्यूट की वैल्यू सेट करें, ताकि उन कोर्स की जानकारी मिल सके जिन्हें शिक्षक फ़िलहाल इस्तेमाल कर रहे हैं.
pageSize जो शिक्षक अपने कोर्स इंपोर्ट कर रहे हैं उनके लिए हमारा सुझाव है कि वे pageSize को छोटा (10 से कम) रखें, ताकि एपीआई कॉल के रिस्पॉन्स का समय कम हो सके.
pageToken पेज वाले अनुरोधों का इस्तेमाल करने पर, यह पैरामीटर ज़रूरी है.
teacherId हमारा सुझाव है कि आप इस भूमिका को चुनें, क्योंकि डोमेन एडमिन अक्सर कोर्स पढ़ाते हैं. अगर इसे तय नहीं किया जाता है, तो अनुरोध पूरे डोमेन में शिक्षकों के लिए उपलब्ध कोर्स दिखाएगा.
फ़ील्ड्स एपीआई कॉल के रिस्पॉन्स टाइम को कम करने के लिए, इसका सुझाव दिया जाता है.

पहले से सेव किए गए कोर्स आईडी का इस्तेमाल करके, अब आपका ऐप्लिकेशन उस कोर्स या उन कोर्स के लिए छात्र-छात्राओं और सह-शिक्षकों की सूची वापस पा सकता है. इस कोर्स आईडी की ज़रूरत सिर्फ़ teachers.list और students.list के लिए होती है. हालांकि, एपीआई कॉल के जवाब का समय कम करने के लिए, pageSize और fields पैरामीटर भी तय किए जा सकते हैं.

छात्र-छात्राओं और शिक्षकों के लिए उपलब्ध सभी फ़ील्ड, उनके दस्तावेज़ में देखे जा सकते हैं. आम तौर पर इस्तेमाल किए जाने वाले और ज़रूरी फ़ील्ड, profile फ़ील्ड में होते हैं. ये फ़ील्ड हैं: profile.name और profile.emailAddress.

फ़ील्ड इस्तेमाल करें
profile.name उपयोगकर्ता के लिए इसे इस्तेमाल करना आसान होता है. इसलिए, इसे आपकी वेबसाइट पर दिखाने का सुझाव दिया जाता है
profile.emailAddress यह उन ऐप्लिकेशन के लिए ज़रूरी है जो छात्र-छात्राओं की पहचान करने के लिए इस्तेमाल किए जाते हैं

Classroom से इन कोर्स या रोस्टर की जानकारी को वापस पाने और इस्तेमाल करने के लिए, आपके ऐप्लिकेशन को उपयोगकर्ताओं से अनुमति का अनुरोध करना होगा. इस वर्कफ़्लो को लागू करने के लिए, तीन (3) स्कोप ज़रूरी हैं:

  • https://www.googleapis.com/auth/classroom.courses.readonly
    • Google Classroom के कोर्स को सिर्फ़ पढ़ने का ऐक्सेस देता है
  • https://www.googleapis.com/auth/classroom.rosters.readonly
    • Google Classroom के कोर्स (शिक्षकों और छात्र-छात्राओं) की रोस्टर का रीड-ओनली ऐक्सेस देता है
  • https://www.googleapis.com/auth/classroom.profile.emails
    • यह कुकी, शिक्षकों और छात्र-छात्राओं की ईमेल प्रॉपर्टी को पढ़ने का ऐक्सेस देती है

Pub/Sub सूचनाओं के साथ नामावलियां सिंक करना

स्कूल का साल आगे बढ़ने पर, छात्र-छात्राओं के कोर्स छोड़ने या जोड़ने की वजह से, नामावलियां बदल सकती हैं. Pub/Sub सूचनाएं जोड़ने से, तीसरे पक्ष के ऐप्लिकेशन को Classroom की रोस्टर के साथ सिंक किया जा सकेगा. सूचनाएं पाने के लिए, Google Cloud Pub/Sub विषय सेट अप करें. इसके बाद, विषय को Classroom API के साथ रजिस्टर करें. यह रजिस्ट्रेशन, Classroom से अनुरोध करता है कि वह दिए गए फ़ीड से डेटा को दिए गए विषय पर भेजे. यह फ़ीड, शिक्षक की Classroom की क्लास में शामिल छात्रों की सूची के साथ फिर से सिंक करने के लिए इवेंट ट्रिगर होगा.

पुश नोटिफ़िकेशन का इस्तेमाल करने के लिए, एक और स्कोप की ज़रूरत होगी. इसे पुष्टि के लिए सबमिट करने की ज़रूरत नहीं है:

  • https://www.googleapis.com/auth/classroom.push-notifications
    • इससे आपके ऐप्लिकेशन को किसी भी पुश नोटिफ़िकेशन गतिविधि के लिए रजिस्टर करने की अनुमति मिलती है

पुश नोटिफ़िकेशन के साथ रोस्टर इंपोर्ट करने के वर्कफ़्लो की खास जानकारी देने वाला डायग्राम

Classroom की पुश नोटिफ़िकेशन के साथ इंटिग्रेट करने के बारे में ज़्यादा जानकारी के लिए, पुश नोटिफ़िकेशन मैनेज करने से जुड़ी हमारी गाइड देखें.