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

Lehrkräfte und Schüler/Studenten verwalten

Schüler/Studenten und Lehrkräfte sind spezifische Zuordnungen zwischen einem Nutzerprofil und einem Kurs, die die Rolle dieses Nutzers im Kurs darstellen. Die Bezeichnungen „Schüler/Student“ und „Lehrkraft“ sind nicht global: Ein Nutzer kann für einen Kurs als Lehrkraft und ein anderer als Lehrkraft zugewiesen werden. Die Kennzeichnung „Schüler“ oder „Lehrkraft“ steht für eine Reihe von Berechtigungen für einen bestimmten Nutzer in einem bestimmten Kurs.

Kursteilnehmer
Eine Schülerressource stellt einen Nutzer dar, der als Student in einem bestimmten Kurs angemeldet ist. Schüler/Studenten dürfen die Kursdetails und die Lehrkräfte für diesen Kurs sehen.
Lehrer
Eine Lehrkraft ist ein Nutzer, der einen bestimmten Kurs unterrichtet. Lehrkräfte können die Kursdetails aufrufen und ändern, Lehrkräfte sowie Schüler und Studenten sowie weitere Lehrkräfte und Schüler oder Studenten verwalten.

Schüler/Studenten und Lehrkräfte werden anhand der eindeutigen ID oder E-Mail-Adresse des Nutzers identifiziert, die vom Google Admin SDK zurückgegeben wird. Der aktuelle Nutzer kann sich mit dem "me"-Kurzbefehl auch auf seine eigene ID beziehen.

Direkt hinzufügen

Domainadministratoren sind berechtigt, den Einladungsablauf zu umgehen und Nutzer in ihrer Domain direkt zu Kursen in ihrer Domain als Lehrkräfte oder Schüler und Studenten hinzuzufügen. Ein Kurs gilt als innerhalb der Domain des Administrators, wenn sich der Inhaber des Kurses in der Domain des Administrators befindet. Für Nutzer oder Kurse außerhalb der Domain eines authentifizierten Domainadministrators müssen Anwendungen die Zustimmung des Nutzers einholen. Dazu wird eine Einladung mit der Methode invitations.create() gesendet.

Lehrkräfte hinzufügen oder entfernen

Domainadministratoren können Lehrkräfte innerhalb ihrer Domain direkt mit teachers.create() zu Kursen hinzufügen, wie im folgenden Beispiel gezeigt:

.NET

Classroom/snippets/ClassroomSnippets/AddTeacher.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 Create Teacher API
    public class AddTeacher
    {
       /// <summary>
       /// Add teacher to the Course
       /// </summary>
       /// <param name="courseId"></param>
       /// <param name="teacherEmail"></param>
       /// <returns></returns>
        public static Teacher ClassroomAddTeacher( string courseId,
                 string teacherEmail)
         {
             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.ClassroomRosters);

                 // Create Classroom API service.
                 var service = new ClassroomService(new BaseClientService.Initializer
                 {
                     HttpClientInitializer = credential,
                     ApplicationName = "Classroom API Snippet"
                 });

                 var teacher = new Teacher
                 {
                     UserId = teacherEmail
                 };
                 // Add the teacher to the course.
                 teacher = service.Courses.Teachers.Create(teacher, courseId).Execute();
                     Console.WriteLine(
                         "User '{0}' was added as a teacher to the course with ID '{1}'.\n",
                         teacher.Profile.Name.FullName, courseId);
                     return teacher;
             }
             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 Add the teacher. Error message: {0}", e.Message);
                 }
                 else
                 {
                     throw;
                 }
             }

             return null;
         }


    }

}

Java

Classroom/snippets/src/main/java/AddTeacher.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.Teacher;
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 Add Teacher API */
public class AddTeacher {
    /**
     * Add teacher to a specific course.
     *
     * @param courseId - Id of the course.
     * @param teacherEmail - Email address of the teacher.
     * @return newly created teacher
     * @throws IOException - if credentials file not found.
     */
    public static Teacher addTeacher(String courseId, String teacherEmail)
            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_ROSTERS));
        HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(
                credentials);

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

        Teacher teacher = new Teacher().setUserId(teacherEmail);
        try {
            // Add a teacher to a specified course
            teacher = service.courses().teachers().create(courseId, teacher).execute();
            // Prints the course id with the teacher name
            System.out.printf("User '%s' was added as a teacher to the course with ID '%s'.\n",
                    teacher.getProfile().getName().getFullName(), courseId);
        } catch (GoogleJsonResponseException e) {
            // TODO(developer) - handle error appropriately
            GoogleJsonError error = e.getDetails();
            if (error.getCode() == 409) {
                System.out.printf("User '%s' is already a member of this course.\n", teacherEmail);
            } else if (error.getCode() == 403) {
                System.out.println("The caller does not have permission.\n");
            } else {
                throw e;
            }
        }
        return teacher;
    }
}

PHP

$courseId = '123456';
$teacherEmail = 'alice@example.edu';
$teacher = new Google_Service_Classroom_Teacher(array(
  'userId' => $teacherEmail
));
try {
  $teacher = $service->courses_teachers->create($courseId, $teacher);
  printf("User '%s' was added as a teacher to the course with ID '%s'.\n",
      $teacher->profile->name->fullName, $courseId);
} catch (Google_Service_Exception $e) {
  if ($e->getCode() == 409) {
    printf("User '%s' is already a member of this course.\n", $teacherEmail);
  } else {
    throw $e;
  }
}

Python

Classroom/snippets/classroom_snippets.py
teacher_email = 'alice@example.edu'
teacher = {
    'userId': teacher_email
}
try:
    teachers = service.courses().teachers()
    teacher = teachers.create(courseId=course_id,
                              body=teacher).execute()
    print('User %s was added as a teacher to the course with ID %s'
          % (teacher.get('profile').get('name').get('fullName'),
             course_id))
except errors.HttpError as error:
    print('User "{%s}" is already a member of this course.'
          % teacher_email)

Wenn Sie weitere Lehrkräfte im Namen einer authentifizierten Lehrkraft hinzufügen, müssen Sie die Methode invitations.create() verwenden.

Mit der Methode teachers.delete() können Sie zusätzliche Lehrkräfte aus einem Kurs entfernen. Dadurch wird nur die angegebene Lehrkraft aus dem Kurs entfernt. Es gilt nicht für ihre Zuweisung zu anderen Kursen oder ihrem Nutzerprofil.

Schüler und Studenten anmelden oder entfernen

Domainadministratoren können Schüler und Studenten innerhalb ihrer Domain mit der students.create()-Methode direkt hinzufügen, wie im folgenden Beispiel gezeigt:

.NET

Classroom/snippets/ClassroomSnippets/AddStudent.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 Create Student API
    public class AddStudent
    {
        public static Student ClassroomAddStudent(string courseId, string enrollmentCode)
        {
            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.ClassroomRosters);
                var service = new ClassroomService(new BaseClientService.Initializer
                {
                    HttpClientInitializer = credential,
                    ApplicationName = "Classroom API .NET Quickstart"
                });

                var student = new Student
                {
                    UserId = "me"
                };

                var request = service.Courses.Students.Create(student, courseId);
                request.EnrollmentCode = enrollmentCode;
                student = request.Execute();
                Console.WriteLine(
                    "User '{0}' was enrolled  as a student in the course with ID '{1}'.\n",
                    student.Profile.Name.FullName, courseId);
            }
            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 Add the Student. Error message: {0}", e.Message);
                }
                else
                {
                    throw;
                }
            }

            return null;
        }
    }

}

Java

Classroom/snippets/src/main/java/AddStudent.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.Student;
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 Add Student API */
public class AddStudent {
    /**
     * Add a student in a specified course.
     *
     * @param courseId - Id of the course.
     * @param enrollmentCode - Code of the course to enroll.
     * @return newly added student
     * @throws IOException - if credentials file not found.
     */
    public static Student addStudent(String courseId, String enrollmentCode)
            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_ROSTERS));
        HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(
                credentials);

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

        Student student = new Student().setUserId("me");
        try {
            // Enrolling a student to a specified course
            student = service.courses().students().create(courseId, student)
                    .setEnrollmentCode(enrollmentCode)
                    .execute();
            // Prints the course id with the Student name
            System.out.printf("User '%s' was enrolled as a student in the course with ID '%s'.\n",
                    student.getProfile().getName().getFullName(), courseId);
        } catch (GoogleJsonResponseException e) {
            // TODO(developer) - handle error appropriately
            GoogleJsonError error = e.getDetails();
            if (error.getCode() == 409) {
                System.out.println("You are already a member of this course.");
            } else if (error.getCode() == 403) {
                System.out.println("The caller does not have permission.\n");
            } else {
                throw e;
            }
        }
        return student;
    }
}

PHP

$courseId = '123456';
$enrollmentCode = 'abcdef';
$student = new Google_Service_Classroom_Student(array(
  'userId' => 'me'
));
$params = array(
  'enrollmentCode' => $enrollmentCode
);
try {
  $student = $service->courses_students->create($courseId, $student, $params);
  printf("User '%s' was enrolled  as a student in the course with ID '%s'.\n",
      $student->profile->name->fullName, $courseId);
} catch (Google_Service_Exception $e) {
  if ($e->getCode() == 409) {
    print "You are already a member of this course.\n";
  } else {
    throw $e;
  }
}

Python

Classroom/snippets/classroom_snippets.py
enrollment_code = 'abcdef'
student = {
    'userId': 'me'
}
try:
    student = service.courses().students().create(
        courseId=course_id,
        enrollmentCode=enrollment_code,
        body=student).execute()
    print(
        '''User {%s} was enrolled as a student in
           the course with ID "{%s}"'''
        % (student.get('profile').get('name').get('fullName'),
           course_id))
except errors.HttpError as error:
    print('You are already a member of this course.')

Wenn Sie Schüler im Auftrag einer authentifizierten Lehrkraft hinzufügen, müssen Sie die Methode invitations.create() verwenden.

Mit der Methode students.delete() können Sie einen Schüler oder Studenten aus einem Kurs entfernen. Dadurch wird nur der angegebene Schüler oder Student aus dem Kurs entfernt. Die Anmeldung in anderen Kursen oder in seinem Nutzerprofil wirkt sich nicht darauf aus.

Kurse eines Nutzers abrufen

Mit dem courses.list() kannst du eine Liste der Kurse eines Schülers/Studenten oder Lehrkräftes abrufen. Füge die entsprechenden Nutzer studentId oder teacherId hinzu.

Profil eines Nutzers abrufen

Um das gekürzte Profil, einschließlich ID und Name, für einen Nutzer abzurufen, rufen Sie userProfiles.get() mit der Nutzer-ID, E-Mail-Adresse oder dem Nutzer für den anfragenden Nutzer auf.

Zum Abrufen des Feldes emailAddress müssen Sie den Bereich classroom.profile.emails angeben.

Die zurückgegebene ID entspricht der Directory API-Nutzerressource, die die entsprechende studentId oder teacherId enthält.