Verwenden Ihre Nutzer Classroom mit Google Meet? Weitere Informationen finden Sie unter Apps Script – Kurzanleitung.

Kurse verwalten

Eine Kursressource stellt eine Klasse dar, z. B. "M. Smith und seine Mathematik, Schülerliste und Metadaten.

Jeder Kurs wird durch eine eindeutige ID gekennzeichnet, die vom Server zugewiesen wird. Außerdem können Namen mit einem Kurs verknüpft und anstelle der eindeutigen ID verwendet werden. Jeder Name, auch Alias genannt, befindet sich in einem Namespace, mit dem festgelegt werden kann, wer ihn erstellen und aufrufen kann.

Es werden zwei Namespaces unterstützt:

  • Domain: Der Domain-Namespace ist nützlich, um Aliasse zu erstellen, auf die alle Nutzer Zugriff haben, die aber nicht spezifisch für ein bestimmtes Programm sind. Alternative Einträge für einen Kurs wie MATH 127 und COMSCI 127 sollten beispielsweise im Domain-Namespace erstellt werden. Aliasse im Domain-Namespace dürfen nur von Domainadministratoren erstellt werden, sind jedoch für alle Nutzer in einer Domain sichtbar.
  • Entwicklerprojekt:Der Namespace des Entwicklerprojekts ist nützlich für die Verwaltung von Aliassen, die für eine Anwendung spezifisch sind. Beispielsweise kann eine Anwendung, die alternative Kennungen für Kurse verwendet, Aliasse erstellen, um ihre ID den Classroom-Kursen zuzuordnen. Aliasse, die in diesem Namespace erstellt werden, sind an ein bestimmtes Google API Console-Projekt gebunden. Jeder Nutzer einer Anwendung kann Aliasse im Namespace für dieses Entwicklerprojekt erstellen und aufrufen.

Kurs erstellen

Mit der Methode courses.create() können Sie einen Kurs hinzufügen, wie im folgenden Beispiel gezeigt:

.NET

Classroom/snippets/ClassroomSnippets/CreateCourse.cs
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;
        }
    }
}

Apps Script

Classroom/snippets/createCourse.gs
/**
 * Creates 10th Grade Biology Course.
 * @see https://developers.google.com/classroom/reference/rest/v1/courses/create
 */
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);
    Logger.log('Course created: %s (%s)', course.name, course.id);
  } catch (err) {
    // TODO (developer) - Handle Courses.create() exception
    Logger.log('Failed to create course %s with an error %s', course.name, err.message);
  }
}

Go

Classroom/snippets/createCourse.go
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)
}

Java

Classroom/snippets/src/main/java/CreateCourse.java
import com.google.api.client.googleapis.json.GoogleJsonError;
import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.client.http.HttpRequestInitializer;
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.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.io.IOException;
import java.util.Collections;

/* Class to demonstrate the use of Classroom Create Course API */
public class CreateCourse {
    /**
     * Creates a course
     *
     * @return newly created course
     * @throws IOException - if credentials file not found.
     */
    public static Course createCourse() throws IOException {
        /* Load pre-authorized user credentials from the environment.
           TODO(developer) - See https://developers.google.com/identity for
            guides on implementing OAuth2 for your application. */
        GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
                .createScoped(Collections.singleton(ClassroomScopes.CLASSROOM_COURSES));
        HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(
                credentials);

        // Create the classroom API client
        Classroom service = new Classroom.Builder(new NetHttpTransport(),
                GsonFactory.getDefaultInstance(),
                requestInitializer)
                .setApplicationName("Classroom samples")
                .build();

        Course course = null;
        try {
            // Adding a new course with description
            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("PROVISIONED");
            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

$course = new Google_Service_Classroom_Course(array(
  '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);

Python

Classroom/snippets/classroom_create_course.py
from __future__ import print_function

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()

Wenn Sie einen Kurs erstellen, können Sie optional Metadaten wie die Kursbeschreibung, die Uhrzeit oder den Ort hinzufügen.

Um einen Kurs erstellen zu können, muss der Nutzer, der die Anfrage stellt, die entsprechenden Berechtigungen im Nutzerprofil haben.

Kurse werden standardmäßig erstellt, wobei courseState auf PROVISIONED gesetzt ist. Sie kann jedoch auf ACTIVE überschrieben werden. Wenn der Kurs mit dem Status PROVISIONED erstellt wird, muss die Lehrkraft, die in der ownerId angegeben ist, den Kurs in der Classroom-UI akzeptieren. Alternativ muss der Kurs über die API aktualisiert werden, um die courseState in ACTIVE zu ändern und den Schülern oder Studenten zur Verfügung zu stellen.

Kursdetails abrufen

Mit der Methode courses.get() können Sie die Metadaten eines einzelnen Kurses abrufen, wie im folgenden Beispiel gezeigt:

.NET

Classroom/Snippets/ClassroomSnippets/GetCourse.cs
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;
        }
    }
}

Apps Script

Classroom/snippets/getCourse.gs
/**
 * 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);
    Logger.log('Course "%s" found. ', course.name);
  } catch (err) {
    // TODO (developer) - Handle Courses.get() exception of Handle Classroom API
    Logger.log('Failed to found course %s with error %s ', courseId, err.message);
  }
}

Go

Classroom/snippets/getCourse.go
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)
}

Java

Classroom/snippets/src/main/java/GetCourse.java
import com.google.api.client.googleapis.json.GoogleJsonError;
import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.client.http.HttpRequestInitializer;
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.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.io.IOException;
import java.util.Collections;

/* Class to demonstrate the use of Classroom Get Course API */
public class GetCourse {
    /**
     * Retrieve a single course's metadata.
     *
     * @param courseId - Id of the course to return.
     * @return a course
     * @throws IOException - if credentials file not found.
     */
    public static Course getCourse(String courseId) throws IOException {
        /* Load pre-authorized user credentials from the environment.
           TODO(developer) - See https://developers.google.com/identity for
            guides on implementing OAuth2 for your application. */
        GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
                .createScoped(Collections.singleton(ClassroomScopes.CLASSROOM_COURSES));
        HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(
                credentials);

        // Create the classroom API client
        Classroom service = new Classroom.Builder(new NetHttpTransport(),
                GsonFactory.getDefaultInstance(),
                requestInitializer)
                .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

$courseId = '123456';
try {
  $course = $service->courses->get($courseId);
  printf("Course '%s' found.\n", $course->name);
} catch (Google_Service_Exception $e) {
  if ($e->getCode() == 404) {
    printf("Course with ID '%s' not found.\n", $courseId);
  } else {
    throw $e;
  }
}

Python

Classroom/snippets/classroom_get_course.py
from __future__ import print_function

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')

Verwende für eine Liste von Kursen die courses.list(), wie im folgenden Beispiel gezeigt:

.NET

Classroom/Snippets/ClassroomSnippets/ListCourses.cs
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;
        }
    }
}

Apps Script

Classroom/snippets/listCourses.gs
/**
 * 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) {
      Logger.log('No courses found.');
      return;
    }
    // Print the courses available in classroom
    Logger.log('Courses:');
    for ( const course in courses) {
      Logger.log('%s (%s)', courses[course].name, courses[course].id);
    }
  } catch (err) {
    // TODO (developer) - Handle exception
    Logger.log('Failed with error %s', err.message);
  }
}

Java

Classroom/snippets/src/main/java/ListCourses.java
import com.google.api.client.http.HttpRequestInitializer;
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 com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/* Class to demonstrate the use of Classroom List Course API */
public class ListCourses {
    /**
     * Retrieves all courses with metadata
     *
     * @return list of courses with its metadata
     * @throws IOException - if credentials file not found.
     */
    public static List<Course> listCourses() throws IOException {
        /* Load pre-authorized user credentials from the environment.
           TODO(developer) - See https://developers.google.com/identity for
            guides on implementing OAuth2 for your application. */
        GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
                .createScoped(Collections.singleton(ClassroomScopes.CLASSROOM_COURSES));
        HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(
                credentials);

        // Create the classroom API client
        Classroom service = new Classroom.Builder(new NetHttpTransport(),
                GsonFactory.getDefaultInstance(),
                requestInitializer)
                .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

$pageToken = NULL;
$courses = array();

do {
  $params = array(
    '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);
  }
}

Python

Classroom/snippets/classroom_list_courses.py
from __future__ import print_function

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()

Sie können auch nur die Kurse für einen bestimmten Nutzer auflisten. Weitere Informationen finden Sie unter Kurse für einen Nutzer abrufen.

Kursinformationen aktualisieren

Sie können einige Metadaten zu Kursen ändern, nachdem der Kurs erstellt wurde. Die folgenden Felder können nach der Erstellung des Kurses jederzeit aktualisiert werden:

  • name
  • section
  • descriptionHeading
  • description
  • room
  • courseState
  • ownerId

Wenn Sie alle Felder in einem Kurs aktualisieren möchten, verwenden Sie die Methode courses.update(), wie im folgenden Beispiel gezeigt:

.NET

Classroom/Snippets/ClassroomSnippets/UpdateCourse.cs
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;

        }
    }

}

Apps Script

Classroom/snippets/courseUpdate.gs
/**
 * 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);
    Logger.log('Course "%s" updated.', course.name);
  } catch (e) {
    // TODO (developer) - Handle exception
    Logger.log('Failed to update the course with error %s', e.message);
  }
}

Java

Classroom/snippets/src/main/java/UpdateCourse.java
import com.google.api.client.googleapis.json.GoogleJsonError;
import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.client.http.HttpRequestInitializer;
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.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.io.IOException;
import java.util.Collections;

/* Class to demonstrate the use of Classroom Update Course API */
public class UpdateCourse {
    /**
     * Updates a course's metadata.
     *
     * @param courseId - Id of the course to update.
     * @return updated course
     * @throws IOException - if credentials file not found.
     */
    public static Course updateCourse(String courseId) throws IOException {
        /* Load pre-authorized user credentials from the environment.
           TODO(developer) - See https://developers.google.com/identity for
            guides on implementing OAuth2 for your application. */
        GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
                .createScoped(Collections.singleton(ClassroomScopes.CLASSROOM_COURSES));
        HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(
                credentials);

        // Create the classroom API client
        Classroom service = new Classroom.Builder(new NetHttpTransport(),
                GsonFactory.getDefaultInstance(),
                requestInitializer)
                .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

$courseId = '123456';
$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);

Python

Classroom/snippets/classroom_update_course.py
from __future__ import print_function

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')

Mit der Methode courses.patch() kannst du bestimmte Felder auch aktualisieren, wie im folgenden Beispiel gezeigt:

.NET

Classroom/Snippets/ClassroomSnippets/PatchCourse.cs
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;

        }
    }
}

Apps Script

Classroom/snippets/patchCourse.gs
/**
 * 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);
    Logger.log('Course "%s" updated.', course.name);
  } catch (err) {
    // TODO (developer) - Handle Courses.patch() exception
    Logger.log('Failed to update the course. Error message: %s', err.message);
  }
}

Java

Classroom/snippets/src/main/java/PatchCourse.java
import com.google.api.client.googleapis.json.GoogleJsonError;
import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.client.http.HttpRequestInitializer;
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.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.io.IOException;
import java.util.Collections;

/* Class to demonstrate the use of Classroom Patch Course API */
public class PatchCourse {
    /**
     * 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.
     */
    public static Course patchCourse(String courseId) throws IOException {
        /* Load pre-authorized user credentials from the environment.
           TODO(developer) - See https://developers.google.com/identity for
            guides on implementing OAuth2 for your application. */
        GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
                .createScoped(Collections.singleton(ClassroomScopes.CLASSROOM_COURSES));
        HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(
                credentials);

        // Create the classroom API client
        Classroom service = new Classroom.Builder(new NetHttpTransport(),
                GsonFactory.getDefaultInstance(),
                requestInitializer)
                .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

$courseId = '123456';
$course = new Google_Service_Classroom_Course(array(
  'section' => 'Period 3',
  'room' => '302'
));
$params = array(
  'updateMask' => 'section,room'
);
$course = $service->courses->patch($courseId, $course, $params);
printf("Course '%s' updated.\n", $course->name);

Python

Classroom/snippets/classroom_patch_course.py
from __future__ import print_function

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')