یک منبع دوره یک کلاس مانند "ریاضی 127" و معلمان اختصاص داده شده، فهرست دانش آموزان و ابرداده ها را نشان می دهد.
هر دوره با یک شناسه منحصر به فرد اختصاص داده شده توسط سرور شناسایی می شود. علاوه بر این، ممکن است نامها با یک دوره مرتبط باشند و به جای شناسه منحصر به فرد استفاده شوند. هر نامی که نام مستعار نامیده میشود، در فضای نامی وجود دارد که افراد میتوانند آن را ایجاد و مشاهده کنند.
دو فضای نام پشتیبانی می شود:
- دامنه: فضای نام دامنه برای ایجاد نام مستعار مفید است که همه کاربران نیاز به دسترسی به آنها دارند، اما مختص هیچ برنامه ای نیستند. به عنوان مثال، لیست های جایگزین برای یک دوره، مانند MATH 127 و COMSCI 127، باید در فضای نام دامنه ایجاد شود. نام مستعار در فضای نام دامنه فقط توسط مدیران دامنه ایجاد می شود اما برای همه کاربران یک دامنه قابل مشاهده است.
- پروژه توسعه دهنده: فضای نام پروژه توسعه دهنده برای مدیریت نام مستعار خاص یک برنامه کاربردی مفید است. به عنوان مثال، برنامهای که از شناسههای جایگزین برای دورهها استفاده میکند، میتواند نام مستعار ایجاد کند تا شناسه خود را به دورههای Classroom نگاشت کند. نام مستعار ایجاد شده در این فضای نام به یک پروژه Google API Console خاص گره خورده است. هر کاربر یک برنامه کاربردی می تواند نام مستعار را در فضای نام پروژه توسعه دهنده آن برنامه ایجاد و مشاهده کند.
یک دوره ایجاد کنید
همانطور که در نمونه زیر نشان داده شده است، می توانید با استفاده از متد courses.create()
یک دوره اضافه کنید:
دات نت
using Google; using Google.Apis.Auth.OAuth2; using Google.Apis.Classroom.v1; using Google.Apis.Classroom.v1.Data; using Google.Apis.Services; using System; namespace ClassroomSnippets { // Class to demonstrate the use of Classroom Create Course API public class CreateCourse { /// <summary> /// Creates a new course with description. /// </summary> /// <returns>newly created course</returns> public static Course ClassroomCreateCourse() { try { /* Load pre-authorized user credentials from the environment. TODO(developer) - See https://developers.google.com/identity for guides on implementing OAuth2 for your application. */ GoogleCredential credential = GoogleCredential.GetApplicationDefault() .CreateScoped(ClassroomService.Scope.ClassroomCourses); // Create Classroom API service. var service = new ClassroomService(new BaseClientService.Initializer { HttpClientInitializer = credential, ApplicationName = "Classroom API Snippets" }); // Create a new course with description. var course = new Course { Name = "10th Grade Biology", Section = "Period 2", DescriptionHeading = "Welcome to 10th Grade Biology", Description = "We'll be learning about about the structure of living creatures " + "from a combination of textbooks, guest lectures, and lab work. Expect " + "to be excited!", Room = "301", OwnerId = "me", CourseState = "PROVISIONED" }; course = service.Courses.Create(course).Execute(); // Prints the new created course Id and name. Console.WriteLine("Course created: {0} ({1})", course.Name, course.Id); return course; } catch (Exception e) { // TODO(developer) - handle error appropriately if (e is AggregateException) { Console.WriteLine("Credential Not found"); } else if (e is GoogleApiException) { Console.WriteLine("OwnerId not specified."); } else { throw; } } return null; } } }
اسکریپت برنامه ها
/** * Creates 10th Grade Biology Course. * @see https://developers.google.com/classroom/reference/rest/v1/courses/create * return {string} Id of created course */ function createCourse() { let course = { name: '10th Grade Biology', section: 'Period 2', descriptionHeading: 'Welcome to 10th Grade Biology', description: 'We\'ll be learning about the structure of living creatures from a combination ' + 'of textbooks, guest lectures, and lab work. Expect to be excited!', room: '301', ownerId: 'me', courseState: 'PROVISIONED' }; try { // Create the course using course details. course = Classroom.Courses.create(course); console.log('Course created: %s (%s)', course.name, course.id); return course.id; } catch (err) { // TODO (developer) - Handle Courses.create() exception console.log('Failed to create course %s with an error %s', course.name, err.message); } }
برو
c := &classroom.Course{ Name: "10th Grade Biology", Section: "Period 2", DescriptionHeading: "Welcome to 10th Grade Biology", Description: "We'll be learning about about the structure of living creatures from a combination of textbooks, guest lectures, and lab work. Expect to be excited!", Room: "301", OwnerId: "me", CourseState: "PROVISIONED", } course, err := srv.Courses.Create(c).Do() if err != nil { log.Fatalf("Course unable to be created %v", err) }
جاوا
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.googleapis.json.GoogleJsonError; import com.google.api.client.googleapis.json.GoogleJsonResponseException; import com.google.api.client.http.javanet.NetHttpTransport; import com.google.api.client.json.gson.GsonFactory; import com.google.api.services.classroom.Classroom; import com.google.api.services.classroom.ClassroomScopes; import com.google.api.services.classroom.model.Course; import java.io.IOException; import java.security.GeneralSecurityException; import java.util.ArrayList; import java.util.Arrays; /* Class to demonstrate the use of Classroom Create Course API */ public class CreateCourse { /* Scopes required by this API call. If modifying these scopes, delete your previously saved tokens/ folder. */ static ArrayList<String> SCOPES = new ArrayList<>(Arrays.asList(ClassroomScopes.CLASSROOM_COURSES)); /** * Creates a course * * @return newly created course * @throws IOException - if credentials file not found. * @throws GeneralSecurityException - if a new instance of NetHttpTransport was not created. */ public static Course createCourse() throws GeneralSecurityException, IOException { // Create the classroom API client. final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport(); Classroom service = new Classroom.Builder( HTTP_TRANSPORT, GsonFactory.getDefaultInstance(), ClassroomCredentials.getCredentials(HTTP_TRANSPORT, SCOPES)) .setApplicationName("Classroom samples") .build(); Course course = null; try { // Adding a new course with description. Set CourseState to `ACTIVE`. Possible values of // CourseState can be found here: // https://developers.google.com/classroom/reference/rest/v1/courses#coursestate course = new Course() .setName("10th Grade Biology") .setSection("Period 2") .setDescriptionHeading("Welcome to 10th Grade Biology") .setDescription( "We'll be learning about about the structure of living creatures " + "from a combination of textbooks, guest lectures, and lab work. Expect " + "to be excited!") .setRoom("301") .setOwnerId("me") .setCourseState("ACTIVE"); course = service.courses().create(course).execute(); // Prints the new created course Id and name System.out.printf("Course created: %s (%s)\n", course.getName(), course.getId()); } catch (GoogleJsonResponseException e) { GoogleJsonError error = e.getDetails(); if (error.getCode() == 400) { System.err.println("Unable to create course, ownerId not specified.\n"); } else { throw e; } } return course; } }
PHP
use Google\Client; use Google\Service\Classroom; use Google\Service\Classroom\Course; use Google\Service\Exception; function createCourse() { /* Load pre-authorized user credentials from the environment. TODO(developer) - See https://developers.google.com/identity for guides on implementing OAuth2 for your application. */ $client = new Client(); $client->useApplicationDefaultCredentials(); $client->addScope("https://www.googleapis.com/auth/classroom.courses"); $service = new Classroom($client); try { $course = new Course([ 'name' => '10th Grade Biology', 'section' => 'Period 2', 'descriptionHeading' => 'Welcome to 10th Grade Biology', 'description' => 'We\'ll be learning about about the structure of living ' . 'creatures from a combination of textbooks, guest ' . 'lectures, and lab work. Expect to be excited!', 'room' => '301', 'ownerId' => 'me', 'courseState' => 'PROVISIONED' ]); $course = $service->courses->create($course); printf("Course created: %s (%s)\n", $course->name, $course->id); return $course; } catch (Exception $e) { echo 'Message: ' . $e->getMessage(); } }
پایتون
import google.auth from googleapiclient.discovery import build from googleapiclient.errors import HttpError def classroom_create_course(): """ Creates the courses the user has access to. Load pre-authorized user credentials from the environment. TODO(developer) - See https://developers.google.com/identity for guides on implementing OAuth2 for the application. """ creds, _ = google.auth.default() # pylint: disable=maybe-no-member try: service = build("classroom", "v1", credentials=creds) course = { "name": "10th Grade Mathematics Probability-2", "section": "Period 3", "descriptionHeading": "Welcome to 10th Grade Mathematics", "description": """We'll be learning about about the polynomials from a combination of textbooks and guest lectures. Expect to be excited!""", "room": "302", "ownerId": "me", "courseState": "PROVISIONED", } # pylint: disable=maybe-no-member course = service.courses().create(body=course).execute() print(f"Course created: {(course.get('name'), course.get('id'))}") return course except HttpError as error: print(f"An error occurred: {error}") return error if __name__ == "__main__": classroom_create_course()
هنگامی که یک دوره ایجاد می کنید، می توانید به صورت اختیاری ابرداده مانند توضیحات دوره، زمان یا مکان را اضافه کنید.
برای ایجاد دوره، کاربر درخواست کننده باید مجوزهای مناسب را در پروفایل کاربری خود داشته باشد.
دوره ها با courseState
به طور پیش فرض روی PROVISIONED
ایجاد می شوند. با این حال، این می تواند به ACTIVE
لغو شود. اگر دوره در حالت PROVISIONED
ایجاد شده باشد، معلم شناسایی شده در ownerId
باید کلاس را در Classroom UI بپذیرد یا دوره باید از طریق API به روز شود تا courseState
به ACTIVE
تغییر دهد و در دسترس دانش آموزان خود قرار دهد.
بازیابی جزئیات دوره
همانطور که در نمونه زیر نشان داده شده است، می توانید فراداده یک دوره را با متد courses.get()
بازیابی کنید:
دات نت
using Google; using Google.Apis.Auth.OAuth2; using Google.Apis.Classroom.v1; using Google.Apis.Classroom.v1.Data; using Google.Apis.Services; using System; namespace ClassroomSnippets { // Class to demonstrate the use of Classroom Get Course API public class GetCourse { /// <summary> /// Retrieve a single course's metadata. /// </summary> /// <param name="courseId">Id of the course.</param> /// <returns>a course, null otherwise.</returns> public static Course ClassroomGetCourse(string courseId) { try { /* Load pre-authorized user credentials from the environment. TODO(developer) - See https://developers.google.com/identity for guides on implementing OAuth2 for your application. */ GoogleCredential credential = GoogleCredential.GetApplicationDefault() .CreateScoped(ClassroomService.Scope.ClassroomCourses); // Create Classroom API service. var service = new ClassroomService(new BaseClientService.Initializer { HttpClientInitializer = credential, ApplicationName = "Classroom Snippets" }); // Get the course details using course id Course course = service.Courses.Get(courseId).Execute(); Console.WriteLine("Course '{0}' found.\n", course.Name); return course; } catch (Exception e) { // TODO(developer) - handle error appropriately if (e is AggregateException) { Console.WriteLine("Credential Not found"); } else if (e is GoogleApiException) { Console.WriteLine("Course does not exist."); } else { throw; } } return null; } } }
اسکریپت برنامه ها
/** * Retrieves course by id. * @param {string} courseId * @see https://developers.google.com/classroom/reference/rest/v1/courses/get */ function getCourse(courseId) { try { // Get the course details using course id const course = Classroom.Courses.get(courseId); console.log('Course "%s" found. ', course.name); } catch (err) { // TODO (developer) - Handle Courses.get() exception of Handle Classroom API console.log('Failed to found course %s with error %s ', courseId, err.message); } }
برو
ctx := context.Background() srv, err := classroom.NewService(ctx, option.WithHTTPClient(client)) if err != nil { log.Fatalf("Unable to create classroom Client %v", err) } id := "123456" course, err := srv.Courses.Get(id).Do() if err != nil { log.Fatalf("Course unable to be retrieved %v", err) }
جاوا
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.googleapis.json.GoogleJsonError; import com.google.api.client.googleapis.json.GoogleJsonResponseException; import com.google.api.client.http.javanet.NetHttpTransport; import com.google.api.client.json.gson.GsonFactory; import com.google.api.services.classroom.Classroom; import com.google.api.services.classroom.ClassroomScopes; import com.google.api.services.classroom.model.Course; import java.io.IOException; import java.security.GeneralSecurityException; import java.util.ArrayList; import java.util.Arrays; /* Class to demonstrate the use of Classroom Get Course API */ public class GetCourse { /* Scopes required by this API call. If modifying these scopes, delete your previously saved tokens/ folder. */ static ArrayList<String> SCOPES = new ArrayList<>(Arrays.asList(ClassroomScopes.CLASSROOM_COURSES)); /** * Retrieve a single course's metadata. * * @param courseId - Id of the course to return. * @return a course * @throws IOException - if credentials file not found. * @throws GeneralSecurityException - if a new instance of NetHttpTransport was not created. */ public static Course getCourse(String courseId) throws GeneralSecurityException, IOException { // Create the classroom API client. final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport(); Classroom service = new Classroom.Builder( HTTP_TRANSPORT, GsonFactory.getDefaultInstance(), ClassroomCredentials.getCredentials(HTTP_TRANSPORT, SCOPES)) .setApplicationName("Classroom samples") .build(); Course course = null; try { course = service.courses().get(courseId).execute(); System.out.printf("Course '%s' found.\n", course.getName()); } catch (GoogleJsonResponseException e) { // TODO(developer) - handle error appropriately GoogleJsonError error = e.getDetails(); if (error.getCode() == 404) { System.out.printf("Course with ID '%s' not found.\n", courseId); } else { throw e; } } return course; } }
PHP
use Google\Client; use Google\Service\Classroom; use Google\Service\Exception; function getCourse($courseId) { /* Load pre-authorized user credentials from the environment. TODO (developer) - See https://developers.google.com/identity for guides on implementing OAuth2 for your application. */ $client = new Client(); $client->useApplicationDefaultCredentials(); $client->addScope("https://www.googleapis.com/auth/classroom.courses"); $service = new Classroom($client); try { $course = $service->courses->get($courseId); printf("Course '%s' found.\n", $course->name); return $course; } catch (Exception $e) { if ($e->getCode() == 404) { printf("Course with ID '%s' not found.\n", $courseId); } else { throw $e; } } }
پایتون
import google.auth from googleapiclient.discovery import build from googleapiclient.errors import HttpError def classroom_get_course(course_id): """ Prints the name of the with specific course_id. Load pre-authorized user credentials from the environment. TODO(developer) - See https://developers.google.com/identity for guides on implementing OAuth2 for the application. """ creds, _ = google.auth.default() # pylint: disable=maybe-no-member course = None try: service = build("classroom", "v1", credentials=creds) course = service.courses().get(id=course_id).execute() print(f"Course found : {course.get('name')}") except HttpError as error: print(f"An error occurred: {error}") print(f"Course not found: {course_id}") return error return course if __name__ == "__main__": # Put the course_id of course whose information needs to be fetched. classroom_get_course("course_id")
برای لیستی از دوره ها، از courses.list()
استفاده کنید، همانطور که در نمونه زیر نشان داده شده است:
دات نت
using Google.Apis.Auth.OAuth2; using Google.Apis.Classroom.v1; using Google.Apis.Classroom.v1.Data; using Google.Apis.Services; using System; using System.Collections.Generic; namespace ClassroomSnippets { // Class to demonstrate the use of Classroom List Course API public class ListCourses { /// <summary> /// Retrieves all courses with metadata. /// </summary> /// <returns>list of courses with its metadata, null otherwise.</returns> public static List<Course> ClassroomListCourses() { try { /* Load pre-authorized user credentials from the environment. TODO(developer) - See https://developers.google.com/identity for guides on implementing OAuth2 for your application. */ GoogleCredential credential = GoogleCredential.GetApplicationDefault() .CreateScoped(ClassroomService.Scope.ClassroomCourses); // Create Classroom API service. var service = new ClassroomService(new BaseClientService.Initializer { HttpClientInitializer = credential, ApplicationName = "Classroom Snippets" }); string pageToken = null; var courses = new List<Course>(); do { var request = service.Courses.List(); request.PageSize = 100; request.PageToken = pageToken; var response = request.Execute(); courses.AddRange(response.Courses); pageToken = response.NextPageToken; } while (pageToken != null); Console.WriteLine("Courses:"); foreach (var course in courses) { // Print the courses available in classroom Console.WriteLine("{0} ({1})", course.Name, course.Id); } return courses; } catch (Exception e) { // TODO(developer) - handle error appropriately if (e is AggregateException) { Console.WriteLine("Credential Not found"); } else if (e is ArgumentNullException) { Console.WriteLine("No courses found."); } else { throw; } } return null; } } }
اسکریپت برنامه ها
/** * Lists all course names and ids. * @see https://developers.google.com/classroom/reference/rest/v1/courses/list */ function listCourses() { let courses = []; const pageToken = null; const optionalArgs = { pageToken: pageToken, pageSize: 100 }; try { const response = Classroom.Courses.list(optionalArgs); courses = response.courses; if (courses.length === 0) { console.log('No courses found.'); return; } // Print the courses available in classroom console.log('Courses:'); for ( const course in courses) { console.log('%s (%s)', courses[course].name, courses[course].id); } } catch (err) { // TODO (developer) - Handle exception console.log('Failed with error %s', err.message); } }
جاوا
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.http.javanet.NetHttpTransport; import com.google.api.client.json.gson.GsonFactory; import com.google.api.services.classroom.Classroom; import com.google.api.services.classroom.ClassroomScopes; import com.google.api.services.classroom.model.Course; import com.google.api.services.classroom.model.ListCoursesResponse; import java.io.IOException; import java.security.GeneralSecurityException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /* Class to demonstrate the use of Classroom List Course API */ public class ListCourses { /* Scopes required by this API call. If modifying these scopes, delete your previously saved tokens/ folder. */ static ArrayList<String> SCOPES = new ArrayList<>(Arrays.asList(ClassroomScopes.CLASSROOM_COURSES)); /** * Retrieves all courses with metadata * * @return list of courses with its metadata * @throws IOException - if credentials file not found. * @throws GeneralSecurityException - if a new instance of NetHttpTransport was not created. */ public static List<Course> listCourses() throws GeneralSecurityException, IOException { // Create the classroom API client. final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport(); Classroom service = new Classroom.Builder( HTTP_TRANSPORT, GsonFactory.getDefaultInstance(), ClassroomCredentials.getCredentials(HTTP_TRANSPORT, SCOPES)) .setApplicationName("Classroom samples") .build(); String pageToken = null; List<Course> courses = new ArrayList<>(); try { do { ListCoursesResponse response = service.courses().list().setPageSize(100).setPageToken(pageToken).execute(); courses.addAll(response.getCourses()); pageToken = response.getNextPageToken(); } while (pageToken != null); if (courses.isEmpty()) { System.out.println("No courses found."); } else { System.out.println("Courses:"); for (Course course : courses) { System.out.printf("%s (%s)\n", course.getName(), course.getId()); } } } catch (NullPointerException ne) { // TODO(developer) - handle error appropriately System.err.println("No courses found.\n"); } return courses; } }
PHP
use Google\Service\Classroom; use Google\Client; function listCourses(): array { /* Load pre-authorized user credentials from the environment. TODO (developer) - See https://developers.google.com/identity for guides on implementing OAuth2 for your application. */ $client = new Client(); $client->useApplicationDefaultCredentials(); $client->addScope("https://www.googleapis.com/auth/classroom.courses"); $service = new Classroom($client); $courses = []; $pageToken = ''; do { $params = [ 'pageSize' => 100, 'pageToken' => $pageToken ]; $response = $service->courses->listCourses($params); $courses = array_merge($courses, $response->courses); $pageToken = $response->nextPageToken; } while (!empty($pageToken)); if (count($courses) == 0) { print "No courses found.\n"; } else { print "Courses:\n"; foreach ($courses as $course) { printf("%s (%s)\n", $course->name, $course->id); } } return $courses; }
پایتون
import google.auth from googleapiclient.discovery import build from googleapiclient.errors import HttpError def classroom_list_courses(): """ Prints the list of the courses the user has access to. Load pre-authorized user credentials from the environment. TODO(developer) - See https://developers.google.com/identity for guides on implementing OAuth2 for the application. """ creds, _ = google.auth.default() try: service = build("classroom", "v1", credentials=creds) courses = [] page_token = None while True: # pylint: disable=maybe-no-member response = ( service.courses().list(pageToken=page_token, pageSize=100).execute() ) courses.extend(response.get("courses", [])) page_token = response.get("nextPageToken", None) if not page_token: break if not courses: print("No courses found.") return print("Courses:") for course in courses: print(f"{course.get('name'), course.get('id')}") return courses except HttpError as error: print(f"An error occurred: {error}") return error if __name__ == "__main__": print("Courses available are-------") classroom_list_courses()
همچنین می توانید فقط دوره های آموزشی را برای یک کاربر خاص لیست کنید. برای اطلاعات بیشتر، به بازیابی دورههای آموزشی برای کاربر مراجعه کنید.
به روز رسانی اطلاعات دوره
پس از ایجاد دوره می توانید برخی از فراداده های دوره را به روز کنید. فیلدهای زیر را می توان هر زمان پس از ایجاد دوره به روز کرد:
-
name
-
section
-
descriptionHeading
-
description
-
room
-
courseState
-
ownerId
برای به روز رسانی تمام فیلدهای یک دوره، از متد courses.update()
استفاده کنید، همانطور که در نمونه زیر نشان داده شده است:
دات نت
using Google.Apis.Auth.OAuth2; using Google.Apis.Classroom.v1; using Google.Apis.Classroom.v1.Data; using Google.Apis.Services; using System; using System.Net; using Google; namespace ClassroomSnippets { // Class to demonstrate the use of Classroom Update Course API public class UpdateCourse { /// <summary> /// Update one field of course /// </summary> /// <param name="courseId"></param> /// <returns></returns> /// <exception cref="GoogleApiException"></exception> public static Course ClassroomUpdateCourse(string courseId) { try { /* Load pre-authorized user credentials from the environment. TODO(developer) - See https://developers.google.com/identity for guides on implementing OAuth2 for your application. */ GoogleCredential credential = GoogleCredential.GetApplicationDefault() .CreateScoped(ClassroomService.Scope.ClassroomCourses); // Create Classroom API service. var service = new ClassroomService(new BaseClientService.Initializer { HttpClientInitializer = credential, ApplicationName = "Classroom API Snippet" }); Course course = service.Courses.Get(courseId).Execute(); course.Section = "Period 3"; course.Room = "302"; course = service.Courses.Update(course, courseId).Execute(); Console.WriteLine("Course '{0}' updated.\n", course.Name); return course; } catch (Exception e) { // TODO(developer) - handle error appropriately if (e is AggregateException) { Console.WriteLine("Credential Not found"); } else if (e is GoogleApiException) { Console.WriteLine("Failed to update the course. Error message: {0}", e.Message); } else { throw; } } return null; } } }
اسکریپت برنامه ها
/** * Updates the section and room of Google Classroom. * @param {string} courseId * @see https://developers.google.com/classroom/reference/rest/v1/courses/update */ function courseUpdate(courseId) { try { // Get the course using course ID let course = Classroom.Courses.get(courseId); course.section = 'Period 3'; course.room = '302'; // Update the course course = Classroom.Courses.update(course, courseId); console.log('Course "%s" updated.', course.name); } catch (e) { // TODO (developer) - Handle exception console.log('Failed to update the course with error %s', e.message); } }
جاوا
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.googleapis.json.GoogleJsonError; import com.google.api.client.googleapis.json.GoogleJsonResponseException; import com.google.api.client.http.javanet.NetHttpTransport; import com.google.api.client.json.gson.GsonFactory; import com.google.api.services.classroom.Classroom; import com.google.api.services.classroom.ClassroomScopes; import com.google.api.services.classroom.model.Course; import java.io.IOException; import java.security.GeneralSecurityException; import java.util.ArrayList; import java.util.Arrays; /* Class to demonstrate the use of Classroom Update Course API */ public class UpdateCourse { /* Scopes required by this API call. If modifying these scopes, delete your previously saved tokens/ folder. */ static ArrayList<String> SCOPES = new ArrayList<>(Arrays.asList(ClassroomScopes.CLASSROOM_COURSES)); /** * Updates a course's metadata. * * @param courseId - Id of the course to update. * @return updated course * @throws IOException - if credentials file not found. * @throws GeneralSecurityException - if a new instance of NetHttpTransport was not created. */ public static Course updateCourse(String courseId) throws GeneralSecurityException, IOException { // Create the classroom API client. final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport(); Classroom service = new Classroom.Builder( HTTP_TRANSPORT, GsonFactory.getDefaultInstance(), ClassroomCredentials.getCredentials(HTTP_TRANSPORT, SCOPES)) .setApplicationName("Classroom samples") .build(); Course course = null; try { // Updating the section and room in a course course = service.courses().get(courseId).execute(); course.setSection("Period 3"); course.setRoom("302"); course = service.courses().update(courseId, course).execute(); // Prints the updated course System.out.printf("Course '%s' updated.\n", course.getName()); } catch (GoogleJsonResponseException e) { // TODO(developer) - handle error appropriately GoogleJsonError error = e.getDetails(); if (error.getCode() == 404) { System.err.println("Course does not exist.\n"); } else { throw e; } } return course; } }
PHP
use Google\Client; use Google\Service\Classroom; function updateCourse($courseId) { /* Load pre-authorized user credentials from the environment. TODO (developer) - See https://developers.google.com/identity for guides on implementing OAuth2 for your application. */ $client = new Client(); $client->useApplicationDefaultCredentials(); $client->addScope("https://www.googleapis.com/auth/classroom.courses"); $service = new Classroom($client); $course = $service->courses->get($courseId); $course->section = 'Period 3'; $course->room = '302'; $course = $service->courses->update($courseId, $course); printf("Course '%s' updated.\n", $course->name); return $course; }
پایتون
import google.auth from googleapiclient.discovery import build from googleapiclient.errors import HttpError def classroom_update_course(course_id): """ Updates the courses names the user has access to. Load pre-authorized user credentials from the environment. TODO(developer) - See https://developers.google.com/identity for guides on implementing OAuth2 for the application. """ # pylint: disable=maybe-no-member creds, _ = google.auth.default() try: service = build("classroom", "v1", credentials=creds) # Updates the section and room of Google Classroom. course = service.courses().get(id=course_id).execute() course["name"] = "10th Grade Physics - Light" course["section"] = "Period 4" course["room"] = "410" course = service.courses().update(id=course_id, body=course).execute() print(f" Updated Course is: {course.get('name')}") return course except HttpError as error: print(f"An error occurred: {error}") return error if __name__ == "__main__": # Put the course_id of course whose course needs to be updated. classroom_update_course("course_id")
همچنین می توانید فیلدهای خاصی را با استفاده از متد courses.patch()
به روز کنید، همانطور که در نمونه زیر نشان داده شده است:
دات نت
using Google.Apis.Auth.OAuth2; using Google.Apis.Classroom.v1; using Google.Apis.Classroom.v1.Data; using Google.Apis.Services; using System; using Google; namespace ClassroomSnippets { // Class to demonstrate the use of Classroom Patch Course API public class PatchUpdate { /// <summary> /// Updates one or more fields in a course. /// </summary> /// <param name="courseId"></param> /// <returns></returns> /// <exception cref="GoogleApiException"></exception> public static Course ClassroomPatchUpdate(string courseId) { try { /* Load pre-authorized user credentials from the environment. TODO(developer) - See https://developers.google.com/identity for guides on implementing OAuth2 for your application. */ GoogleCredential credential = GoogleCredential.GetApplicationDefault() .CreateScoped(ClassroomService.Scope.ClassroomCourses); // Create Classroom API service. var service = new ClassroomService(new BaseClientService.Initializer { HttpClientInitializer = credential, ApplicationName = "Classroom API Snippet" }); var course = new Course { Section = "Period 3", Room = "302" }; // Updates one or more fields of course. var request = service.Courses.Patch(course, courseId); request.UpdateMask = "section,room"; course = request.Execute(); Console.WriteLine("Course '{0}' updated.\n", course.Name); return course; } catch (Exception e) { // TODO(developer) - handle error appropriately if (e is AggregateException) { Console.WriteLine("Credential Not found"); } else if (e is GoogleApiException) { Console.WriteLine("Failed to update the course. Error message: {0}", e.Message); } else { throw ; } } return null; } } }
اسکریپت برنامه ها
/** * Updates the section and room of Google Classroom. * @param {string} courseId * @see https://developers.google.com/classroom/reference/rest/v1/courses/patch */ function coursePatch(courseId) { let course = { 'section': 'Period 3', 'room': '302' }; const mask = { updateMask: 'section,room' }; try { // Update section and room in course. course = Classroom.Courses.patch(body=course, id=courseId, updateMask=mask); console.log('Course "%s" updated.', course.name); } catch (err) { // TODO (developer) - Handle Courses.patch() exception console.log('Failed to update the course. Error message: %s', err.message); } }
جاوا
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.googleapis.json.GoogleJsonError; import com.google.api.client.googleapis.json.GoogleJsonResponseException; import com.google.api.client.http.javanet.NetHttpTransport; import com.google.api.client.json.gson.GsonFactory; import com.google.api.services.classroom.Classroom; import com.google.api.services.classroom.ClassroomScopes; import com.google.api.services.classroom.model.Course; import java.io.IOException; import java.security.GeneralSecurityException; import java.util.ArrayList; import java.util.Arrays; /* Class to demonstrate the use of Classroom Patch Course API */ public class PatchCourse { /* Scopes required by this API call. If modifying these scopes, delete your previously saved tokens/ folder. */ static ArrayList<String> SCOPES = new ArrayList<>(Arrays.asList(ClassroomScopes.CLASSROOM_COURSES)); /** * Updates one or more fields in a course. * * @param courseId - Id of the course to update. * @return updated course * @throws IOException - if credentials file not found. * @throws GeneralSecurityException - if a new instance of NetHttpTransport was not created. */ public static Course patchCourse(String courseId) throws GeneralSecurityException, IOException { // Create the classroom API client. final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport(); Classroom service = new Classroom.Builder( HTTP_TRANSPORT, GsonFactory.getDefaultInstance(), ClassroomCredentials.getCredentials(HTTP_TRANSPORT, SCOPES)) .setApplicationName("Classroom samples") .build(); Course course = null; try { course = new Course().setSection("Period 3").setRoom("302"); course = service.courses().patch(courseId, course).setUpdateMask("section,room").execute(); System.out.printf("Course '%s' updated.\n", course.getName()); } catch (GoogleJsonResponseException e) { // TODO(developer) - handle error appropriately GoogleJsonError error = e.getDetails(); if (error.getCode() == 404) { System.err.println("Course does not exist.\n"); } else { throw e; } } return course; } }
PHP
use Google\Service\Classroom; use Google\Service\Classroom\Course; use Google\Client; function patchCourse($courseId) { /* Load pre-authorized user credentials from the environment. TODO (developer) - See https://developers.google.com/identity for guides on implementing OAuth2 for your application. */ $client = new Client(); $client->useApplicationDefaultCredentials(); $client->addScope("https://www.googleapis.com/auth/classroom.courses"); $service = new Classroom($client); try { $course = new Course([ 'section' => 'Period 3', 'room' => '302' ]); $params = ['updateMask' => 'section,room']; $course = $service->courses->patch($courseId, $course, $params); printf("Course '%s' updated.\n", $course->name); return $course; } catch (Exception $e) { echo 'Message: ' . $e->getMessage(); } }
پایتون
import google.auth from googleapiclient.discovery import build from googleapiclient.errors import HttpError def classroom_patch_course(course_id): """ Patch new course with existing course in the account the user has access to. Load pre-authorized user credentials from the environment. TODO(developer) - See https://developers.google.com/identity for guides on implementing OAuth2 for the application. """ # pylint: disable=maybe-no-member creds, _ = google.auth.default() try: service = build("classroom", "v1", credentials=creds) course = {"section": "Period 3", "room": "313"} course = ( service.courses() .patch(id=course_id, updateMask="section,room", body=course) .execute() ) print(f" Course updated are: {course.get('name')}") return course except HttpError as error: print(f"An error occurred: {error}") if __name__ == "__main__": # Put the course_id of course with whom we need to patch some extra # information. classroom_patch_course("course_id")
انتقال مالکیت دوره
مدیران دامنه می توانند با فراخوانی روش های زیر، مالکیت دوره ها را بین معلمان در دامنه خود منتقل کنند:
ابتدا،
teachers.create()
را فراخوانی کنید تا معلمی را به دوره اضافه کنید، در صورتی که از قبل یک معلم مشترک نیستند.سپس،
courses.patch()
فراخوانی کنید و ایمیل همکار معلم یا شناسه کاربری را در فیلدownerId
Id شی درخواست مشخص کنید تا مالک دوره به روز شود.