झलक दिखाने वाले एपीआई ऐक्सेस करें

इस पेज पर बताया गया है कि Classroom API की झलक देखने की सुविधाओं को कैसे ऐक्सेस किया जा सकता है और झलक के वर्शन तय करें.

स्टेबल वर्शन की तुलना में, झलक देखने की सुविधाओं का इस्तेमाल करते समय इन तीन बातों का ध्यान रखें v1 एपीआई:

  1. कॉल करने के लिए उपलब्ध Google Cloud प्रोजेक्ट, Google Workspace में रजिस्टर होना चाहिए Developer Preview Program और Google की ओर से सूची में शामिल अनुमति.
  2. रिलीज़ होने से पहले इस्तेमाल के लिए उपलब्ध या प्रीव्यू प्रोग्राम के लिए, एपीआई की सुविधाओं को स्टैंडर्ड क्लाइंट लाइब्रेरी का इस्तेमाल किया जाता है और हो सकता है कि एचटीटीपी पर डिफ़ॉल्ट रूप से इसे ऐक्सेस न किया जा सके.
  3. एक समय में एक से ज़्यादा एपीआई की स्थिति या वर्शन झलक देखें.

क्लाइंट लाइब्रेरी में झलक की सुविधाएं चालू करें

आम तौर पर, क्लाइंट लाइब्रेरी का इस्तेमाल करके Classroom API का इस्तेमाल किया जा सकता है. यह लीजिए क्लाइंट लाइब्रेरी तीन तरह की होती हैं:

  1. डाइनैमिक रूप से जनरेट की गई क्लाइंट लाइब्रेरी
  2. Google की ओर से दी गई स्टैटिक क्लाइंट लाइब्रेरी
  3. आपकी अपनी कस्टम क्लाइंट लाइब्रेरी

डाइनैमिक रूप से जनरेट की गई या Google से मिली स्टैटिक लाइब्रेरी का इस्तेमाल करना में एपीआई इस्तेमाल करने का सुझाव दिया जाता है. अगर आपको ज़रूरत हो, तो क्लाइंट लाइब्रेरी बनाना देखें तो अपनी लाइब्रेरी बनाएं. अपनी लाइब्रेरी बनाना इस दायरे से बाहर है गाइड की मदद से, डाइनैमिक लाइब्रेरी सेक्शन में जाकर लेबल और डिस्कवरी में उनकी भूमिका की झलक देख सकते हैं.

डाइनैमिक लाइब्रेरी

Python जैसी भाषाओं की लाइब्रेरी, रनटाइम के दौरान क्लाइंट लाइब्रेरी जनरेट करने के लिए इनका इस्तेमाल करती हैं डिस्कवरी सेवा का एक डिस्कवरी दस्तावेज़.

खोज दस्तावेज़ एक ऐसा ब्यौरा है जिसे मशीन आसानी से पढ़ सकती है. REST API का इस्तेमाल करने वाला. इसका इस्तेमाल क्लाइंट लाइब्रेरी बनाने, IDE प्लगिन, और Google API के साथ इंटरैक्ट करने वाले अन्य टूल. एक सेवा कई तरह के काम कर सकती है खोज दस्तावेज़.

Classroom API सेवा (classroom.googleapis.com) के लिए खोज से जुड़े दस्तावेज़ इसे नीचे दिए गए एंडपॉइंट पर देखा जा सकता है:

https://classroom.googleapis.com/$discovery/rest?labels=PREVIEW_LABEL&version=v1&key=API_KEY

प्रीव्यू एपीआई के साथ काम करने के लिए अहम अंतर यह है कि सही label. Classroom की सार्वजनिक झलक के लिए, वह लेबल DEVELOPER_PREVIEW.

Python लाइब्रेरी जनरेट करने और Classroom सेवा को इंस्टैंशिएट करने के लिए तरीकों का इस्तेमाल करके, डिस्कवरी यूआरएल को सही सेवा के साथ बताया जा सकता है, क्रेडेंशियल और लेबल:

classroom_service_with_preview_features = googleapiclient.discovery.build(
  serviceName='classroom',
  version='v1',
  credentials=credentials,
  static_discovery=False,
  discoveryServiceUrl='https://classroom.googleapis.com/$discovery/rest?labels=DEVELOPER_PREVIEW&key=API_KEY)'

हर क्लाइंट की जानकारी पाने के लिए, Google API के क्लाइंट लाइब्रेरी से जुड़े दस्तावेज़ देखें भाषा.

स्टैटिक लाइब्रेरी

Java, Node.js, PHP, C#, और Go जैसी भाषाओं में क्लाइंट लाइब्रेरी होनी चाहिए सोर्स से. ये लाइब्रेरी आपके लिए उपलब्ध कराई गई हैं. इनमें झलक देखने के लिए सुविधाएं शामिल हैं पहले से शामिल है.

सार्वजनिक झलक के लिए, Classroom की क्लाइंट लाइब्रेरी एक-दूसरे के साथ मिल सकती हैं Workspace Developer Preview Program की क्लाइंट लाइब्रेरी. निजी झलक के लिए, अगर आपको स्टैटिक लाइब्रेरी जनरेट करने हैं, तो अपने Google प्रतिनिधि से संपर्क करें.

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

उदाहरण के लिए, Go क्लाइंट लाइब्रेरी का इस्तेमाल करने के लिए, आपको replace का इस्तेमाल करना होगा लोकल डायरेक्ट्री से मॉड्यूल की ज़रूरत करने के लिए, आपकी go.mod फ़ाइल में डायरेक्टिव:

module example.com/app

go 1.21.1

require (
    golang.org/x/oauth2 v0.12.0
    google.golang.org/api v0.139.0 // Classroom library is in here.
)

require (
  ...
)

// Use a local copy of the Go client library.
replace google.golang.org/api v0.139.0 => ../google-api-go-client

एक और उदाहरण के तौर पर, अगर Node.js और npm का इस्तेमाल किया जा रहा है, तो Node.js क्लाइंट जोड़ें लाइब्रेरी डाउनलोड (googleapis-classroom-1.0.4.tgz) में, लोकल डिपेंडेंसी के तौर पर package.json:

{
  "name": "nodejs-classroom-example",
  "version": "1.0.0",
  ...
  "dependencies": {
    "@google-cloud/local-auth": "^2.1.0",
    "googleapis": "^95.0.0",
    "classroom-with-preview-features": "file:./googleapis-classroom-1.0.4.tgz"
  }
}

इसके बाद, अपने ऐप्लिकेशन में classroom-with-preview-features मॉड्यूल को ज़रूरी बनाएं साथ ही, सामान्य डिपेंडेंसी के अलावा classroom सेवा को इंस्टैंशिएट करें इस मॉड्यूल से:

const {authenticate} = require('@google-cloud/local-auth');
const {google} = require('googleapis');
const classroomWithPreviewFeatures = require('classroom-with-preview-features');

...

const classroom = classroomWithPreviewFeatures.classroom({
  version: 'v1',
  auth: auth,
});

...

प्रीव्यू एपीआई वर्शन तय करें

आप स्थिर या डायनैमिक लाइब्रेरी का इस्तेमाल करें, इसके बावजूद आपको प्रीव्यू वर्शन का इस्तेमाल करें.

अलग-अलग वर्शन और उनमें शामिल सुविधाओं के बारे में जानकारी दी गई है Classroom API रोडमैप में बताया गया है. तरीकों और फ़ील्ड में यह भी बताया जाता है कि तरीका या फ़ील्ड किस वर्शन में उपलब्ध है.

अनुरोधों में PreviewVersion फ़ील्ड सेट करके वर्शन तय किया जाता है. उदाहरण के लिए, Rubrics CRUD Preview API की मदद से रूब्रिक बनाने के लिए, बनाएं अनुरोध में previewVersion से V1_20231110_PREVIEW:

rubric = service.courses().courseWork().rubrics().create(
            courseId=course_id,
            courseWorkId=coursework_id,
            # Specify the preview version. Rubrics CRUD capabilities are
            # supported in V1_20231110_PREVIEW and later.
            previewVersion="V1_20231110_PREVIEW",
            body=body
).execute()

झलक देखने के तरीके से जुड़े कॉल में ये भी शामिल होते हैं previewVersion का इस्तेमाल, कॉल में रीड-ओनली फ़ील्ड के तौर पर किया गया है. इससे आपको समझने में मदद मिलेगी इस्तेमाल किया जा रहा है. उदाहरण के लिए, पिछले CREATE से मिला जवाब कॉल में V1_20231110_PREVIEW मान शामिल है:

print(json.dumps(rubric, indent=4))
{
  "courseId": "123",
  "courseWorkId": "456",
  "creationTime": "2023-10-23T18:18:29.932Z",
  "updateTime": "2023-10-23T18:18:29.932Z",
  "id": "789",
  "criteria": [...],
  # The preview version used in the call that returned this resource.
  "previewVersion": "V1_20231110_PREVIEW",
  ...
}

एचटीटीपी अनुरोध

सीधे एचटीटीपी के साथ, Classroom API का इस्तेमाल भी किया जा सकता है.

अगर क्लाइंट लाइब्रेरी के बिना एचटीटीपी अनुरोध किए जाते हैं, तब भी आपको यह सुविधा झलक के तौर पर उपलब्ध वर्शन के बारे में बताती है. ऐसा label को सेट करके किया जाता है X-Goog-Visibilities हेडर और ऊपर दिए गए झलक वर्शन के साथ या तो क्वेरी पैरामीटर या पीओएसटी बॉडी फ़ील्ड (सही व्यक्तिगत एपीआई देखें संदर्भ दस्तावेज़). सार्वजनिक झलक के लिए, लेबल DEVELOPER_PREVIEW है.

उदाहरण के लिए, नीचे दिया गया कर्ल अनुरोध रूब्रिक सेवा को LIST कॉल करता है लेबल और झलक दिखाने वाले सही वर्शन के साथ:

curl \
  'https://classroom.googleapis.com/v1/courses/COURSE_ID/courseWork/COURSE_WORK_ID/rubrics?key=API_KEY&previewVersion=V1_20231110_PREVIEW' \
  --header 'X-Goog-Visibilities: DEVELOPER_PREVIEW' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  --header 'Accept: application/json' \
  --compressed

अनुरोध के मुख्य हिस्से में झलक वाला वर्शन भी बताया जा सकता है. उदाहरण के लिए, जब एक पोस्ट अनुरोध करके:

curl --request PATCH \
  'https://classroom.googleapis.com/v1/courses/COURSE_ID/courseWork/COURSE_WORK_ID/rubrics/RUBRIC_ID?updateMask=criteria&key=API_KEY&previewVersion=V1_20231110_PREVIEW' \
  --header 'X-Goog-Visibilities: DEVELOPER_PREVIEW' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"criteria":"[...]"}' \
  --compressed

हर एचटीटीपी अनुरोध के एपीआई के बारे में, REST दस्तावेज़ में बताया गया है.

Google Apps Script

Google Apps Script से झलक दिखाने वाले एपीआई को कॉल किया जा सकता है. हालांकि, ऐसे कई तरीके हैं सामान्य Apps Script के इस्तेमाल से कुछ अंतर होते हैं.

  1. किसी भी Google Cloud प्रोजेक्ट का इस्तेमाल करने के लिए, आपको अपनी स्क्रिप्ट कॉन्फ़िगर करनी होगी Developer Preview Program में रजिस्टर किया गया.
  2. बेहतर सेवाएं में झलक देखने के तरीके काम नहीं करते. इसलिए, आपको यह बनाना होगा का अनुरोध सीधे एचटीटीपी से किया जा सकता है.
  3. आपको एक लेबल और झलक वर्शन उपलब्ध कराना होगा, जैसा कि पहले बताया गया है एचटीटीपी सेक्शन.

जानकारी पाने के लिए, इससे जुड़ा क्विकस्टार्ट देखें Apps Script का इस्तेमाल करें और एक बेसिक प्रोजेक्ट सेट अप करें. इसके बाद, इन Preview API को कॉल करने की सुविधा शुरू करने के लिए निर्देश:

स्क्रिप्ट में इस्तेमाल किया गया क्लाउड प्रोजेक्ट बदलें

प्रोजेक्ट सेटिंग में, प्रोजेक्ट बदलें पर क्लिक करें और डेवलपर के लिए रजिस्टर किए गए किसी भी प्रोजेक्ट का Cloud प्रोजेक्ट आईडी Preview Program (डिफ़ॉल्ट रूप से, Apps Script स्क्रिप्ट, किसी सामान्य प्रोजेक्ट का इस्तेमाल करती हैं. सिर्फ़ रजिस्टर किया गया है प्रोजेक्ट में झलक देखने के तरीकों को कॉल किया जा सकता है.

एचटीटीपी अनुरोध कॉन्फ़िगर करें

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

function listCourses() {
  try {
    const response = Classroom.Courses.list();
    const courses = response.courses;
    if (!courses || courses.length === 0) {
      console.log('No courses found.');
      return;
    }
    for (const course of courses) {
      console.log('%s (%s)', course.name, course.id);
    }
  } catch (err) {
    // TODO: Developer to handle.
    console.log(err.message);
  }
}

एचटीटीपी को सीधे तौर पर इस्तेमाल करने का तरीका यह है:

function listCourses() {
  const response = UrlFetchApp.fetch(
        'https://classroom.googleapis.com/v1/courses', {
        method: 'GET',
        headers: {'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()},
        contentType: 'application/json',
      });
  const data = JSON.parse(response.getContentText());
  if (data.error) {
    // TODO: Developer to handle.
    console.log(err.message);
    return;
  }
  if (!data.courses || !data.courses.length) {
    console.log('No courses found.');
    return;
  }
  for (const course of data.courses) {
    console.log('%s (%s)', course.name, course.id);
  }
}

बेहतर सेवाएं इस्तेमाल करते समय, ज़रूरी OAuth दायरों का अनुमान लगाया जाता है. हालांकि, Apps Script में Google API को डायरेक्ट एचटीटीपी कॉल करने के लिए, आपको मैन्युअल रूप से उचित दायरे जोड़ें.

प्रोजेक्ट सेटिंग में, "appsscript.json" दिखाएं' को चालू करें में मेनिफ़ेस्ट फ़ाइल Editor. एडिटर में वापस जाकर, इसकी appscript.json फ़ाइल में oauthScopes जोड़ें अपनी ज़रूरत के हिसाब से कोई भी दायरा चुनें. दिए गए तरीके के स्कोप यहां दिए गए हैं देखें. उदाहरण के लिए, courses.courseWork.rubrics की सूची तरीका देखें पेज पर जाएं.

अपडेट की गई appscript.json फ़ाइल कुछ ऐसी दिख सकती है:

{
  "timeZone": "America/Los_Angeles",
  "dependencies": {
  },
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8",
  "oauthScopes": [
    "https://www.googleapis.com/auth/script.external_request",
    "https://www.googleapis.com/auth/classroom.coursework.students",
    "https://www.googleapis.com/auth/classroom.courses",
    "https://www.googleapis.com/auth/spreadsheets.readonly",
    "https://www.googleapis.com/auth/spreadsheets"
  ]
}

लेबल और झलक वर्शन उपलब्ध कराएं

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

function listRubrics() {
  const courseId = COURSE_ID;
  const courseWorkId = COURSE_WORK_ID;
  const response = UrlFetchApp.fetch(
         `https://classroom.googleapis.com/v1/courses/${courseId}/courseWork/${courseWorkId}/rubrics?previewVersion=V1_20231110_PREVIEW`, {
        method: 'GET',
        headers: {
          'Authorization': 'Bearer ' + ScriptApp.getOAuthToken(),
          'X-Goog-Visibilities': 'DEVELOPER_PREVIEW'
        },
        contentType: 'application/json',
        muteHttpExceptions: true
      });
  const data = JSON.parse(response.getContentText());
  console.log(data)
  if (data.error) {
    // TODO: Developer to handle.
    console.log(error.message);
    return;
  }
  if (!data.rubrics || !data.rubrics.length) {
    console.log('No rubrics for this coursework!');
    return;
  }
  console.log(data.rubrics);
}