In Classroom gibt es fünf Arten von Kursaufgaben: Aufgaben, Quizaufgaben, Fragen (Kurzantwort und Multiple-Choice-Fragen) und Materialien. Mit der Classroom API können Entwickler derzeit drei dieser Typen lesen und schreiben: Aufgaben, Fragen und Materialien.
Für den Zugriff auf diese Funktion können Sie die CourseWork-Ressource verwenden. Sie stellt eine Aufgabe oder Frage dar, die Schülern in einem bestimmten Kurs zugewiesen wurde, einschließlich zusätzlicher Materialien und Details wie Abgabetermin oder maximaler Punktzahl.
Neben der Kurs-Ressource können Sie abgeschlossene Aufgaben mit der Ressource StudentSubmission verwalten. In den folgenden Abschnitten wird dies ausführlicher beschrieben.
Aufgaben erstellen
Aufgaben können nur im Namen der Lehrkraft erstellt werden. Wenn Sie versuchen, Aufgaben im Namen eines Schülers oder Studenten zu erstellen, wird der Fehler 403 PERMISSION_DENIED
angezeigt. Ebenso können Domain-Administratoren keine Zuweisungen für Kurse erstellen, die sie nicht unterrichten. Wenn Sie dies über die API tun, wird außerdem der Fehler 403 PERMISSION_DENIED
ausgegeben.
Wenn Sie Zuweisungen erstellen, können Sie Links als materials
anhängen, wie im Beispielcode unten gezeigt:
Python
Das Ergebnis enthält eine vom Server zugewiesene Kennung, mit der auf die Zuweisung in anderen API-Anfragen verwiesen werden kann.
Wenn Sie verknüpfte Materialien in eine Aufgabe einbinden möchten, die Sie über die Classroom API erstellt haben, verwenden Sie eine Linkressource und geben Sie die Ziel-URL an. Classroom ruft automatisch den Titel und das Thumbnail ab. Die Classroom API unterstützt nativ auch Drive- und YouTube-Materialien, die auf ähnliche Weise mit einer DriveFile-Ressource oder einer YouTubeVideo-Ressource verknüpft werden können.
Wenn Sie ein Fälligkeitsdatum angeben möchten, legen Sie die Felder dueDate
und dueTime
auf die entsprechende UTC-Zeit fest. Das Fälligkeitsdatum muss in der Zukunft liegen.
Aufgaben und Fragen abrufen
Sie können Aufgaben und Fragen für Schüler und Lehrkräfte des entsprechenden Kurses oder von einem Domainadministrator abrufen. Verwenden Sie die Datei „courses.courseWork.get“, um eine bestimmte Aufgabe oder Frage abzurufen. Mit {0}courses.courseWork.list{/1} können Sie alle Zuweisungen oder Fragen abrufen (optional mit bestimmten Kriterien).
Der erforderliche Umfang hängt von der Rolle ab, die der anfragende Nutzer im Kurs hat. Wenn der Nutzer Student ist, verwenden Sie einen der folgenden Bereiche:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
Wenn der Nutzer eine Lehrkraft oder ein Domainadministrator ist, verwenden Sie einen der folgenden Bereiche:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Wenn Sie die Berechtigung zum Abrufen einer Aufgabe oder Frage haben, bedeutet dies nicht, dass Sie Zugriff auf Materialien oder Materialmetadaten haben. In der Praxis bedeutet das, dass ein Administrator den Titel einer angehängten Drive-Datei möglicherweise nicht sieht, wenn er kein Mitglied des Kurses ist. Wenn Sie Administratoren Zugriff auf Nutzerdateien gewähren möchten, finden Sie entsprechende Informationen unter Domainweite Delegierung.
Antworten von Schülern/Studenten verwalten
Eine StudentSubmission-Ressource stellt die erledigte Aufgabe und die Note eines Schülers/Studenten für eine Aufgabe oder Frage dar. Für jeden Teilnehmer wird implizit eine StudentSubmission-Ressource erstellt, wenn eine neue Frage oder Aufgabe erstellt wird.
In den folgenden Abschnitten werden häufige Aktionen erläutert, mit denen die Antworten von Schülern oder Studenten verwaltet werden können.
Antworten der Schüler oder Studenten abrufen
Schüler oder Studenten können ihre eigenen Arbeiten abrufen, Lehrkräfte können Beiträge für alle Teilnehmer in ihren Kursen abrufen und Domainadministratoren können alle abgegebenen Aufgaben für alle Teilnehmer in ihrer Domain abrufen. Jeder Schüler/Student erhält eine Kennung. Wenn Sie die Kennung kennen, können Sie sie mit „courses.courseWork.studentSubmissions.get“ abrufen.
Verwenden Sie die Datei „courses.courseWork.studentSubmissions.list“, um StudentSubmission abzurufen, die einigen Kriterien entspricht, wie im folgenden Beispiel gezeigt:
Python
Rufen Sie Aufgaben von Schülern oder Studenten ab, die zu einem bestimmten Schüler oder Studenten gehören. Geben Sie dazu den Parameter „userId“ an, wie im folgenden Beispiel gezeigt:
Python
Kursteilnehmer 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 Kurzbefehl "me"
auch auf seine eigene ID beziehen.
Es ist auch möglich, abgegebene Aufgaben für alle Aufgaben in einem Kurs zu erhalten. Verwenden Sie dazu das Literal "-"
als „courseWorkId“, wie im folgenden Beispiel gezeigt:
Python
service.courses().courseWork().studentSubmissions().list(
courseId=<course ID or alias>,
courseWorkId='-',
userId=<user ID>).execute()
Der erforderliche Umfang hängt von der Rolle ab, die der anfragende Nutzer im Kurs hat. Verwenden Sie den folgenden Bereich, wenn der Nutzer eine Lehrkraft oder ein Domainadministrator ist:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Verwenden Sie den folgenden Bereich, wenn der Nutzer Student ist:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
Die Berechtigung zum Abrufen einer abgegebenen Aufgabe von Schülern oder Studenten beinhaltet keine Berechtigungen für den Zugriff auf Anhänge oder Metadaten von Anhängen. In der Praxis bedeutet das, dass ein Administrator den Titel einer angehängten Drive-Datei möglicherweise nicht sieht, wenn er kein Mitglied des Kurses ist. Informationen dazu, wie Sie Administratoren Zugriff auf Nutzerdateien gewähren, finden Sie im Leitfaden zur domainweiten Delegierung.
Einer Schüler-/Studentenantwort Anhänge hinzufügen
Sie können Links an eine abgegebene Aufgabe von Schülern oder Studenten anhängen, indem Sie eine Link-, DriveFile- oder YouTubeVideo-Ressource anhängen. Dazu wird „courses.courseWork.studentSubmissions.modifyAttachments“ verwendet, wie im folgenden Beispiel gezeigt:
Python
Ein Linkanhang wird durch die Ziel-URL definiert. Classroom ruft automatisch den Titel und das Thumbnail ab. Informationen zu den anderen Materialien findest du auf den jeweiligen Referenzseiten.
Materialien können von einer Kurslehrerin oder von einem Schüler oder Studenten erstellt werden, dem die abgegebenen Arbeiten gehören, aber nur für die Einreichung mit einem courseWorkType
von "ASSIGNMENT"
.
Der erforderliche Umfang hängt von der Rolle ab, die der anfragende Nutzer im Kurs hat. Verwenden Sie den folgenden Bereich, wenn der Nutzer eine Lehrkraft ist:
https://www.googleapis.com/auth/classroom.coursework.students
Verwenden Sie den folgenden Bereich, wenn der Nutzer Student ist:
https://www.googleapis.com/auth/classroom.coursework.me
Antwortstatus von Schülern oder Studenten verwalten
Eine Schüler-/Studentenantwort kann zurückgezogen, abgegeben oder zurückgegeben werden. Das Statusfeld in StudentSubmission gibt den aktuellen Status an. Rufen Sie zum Ändern des Status eine der folgenden Methoden auf:
courses.courseWork.studentSubmissions.turnIn
courses.courseWork.studentSubmissions.return
courses.courseWork.studentSubmissions.reclaim
Alle diese Methoden haben einen leeren Textkörper. Beispiel:
Python
service.courses().courseWork().studentSubmission().turnIn(
courseId=<course ID or alias>,
courseWorkId=<courseWork ID>,
id=<studentSubmission ID>,
body={}).execute()
Nur der Schüler, der Inhaber einer StudentSubmission ist, kann diese abgeben oder zurückfordern. Nur eine abgegebene Aufgabe kann zurückgefordert werden. Lehrkräfte können nur eine StudentSubmission zurückgeben, die sich im Abgabestatus befindet.
Schüler/Studenten benoten
Die Ressource StudentSubmission hat zwei Felder zum Speichern von Noten: assignedGrade
(die für Schüler/Studenten gemeldete Note) und draftGrade
(eine vorläufige Note, die nur für Lehrkräfte sichtbar ist). Diese Felder werden mit courses.courseWork.studentSubmissions.patch
mit einer Feldmaske aktualisiert, die die entsprechenden Felder enthält, wie im folgenden Beispiel gezeigt.
Python
studentSubmission = {
'assignedGrade': 99,
'draftGrade': 80
}
service.courses().courseWork().studentSubmissions().patch(
courseId=<course ID or alias>,
courseWorkId=<courseWork ID>,
id=<studentSubmission ID>,
updateMask='assignedGrade,draftGrade',
body=studentSubmission).execute()
Wenn Lehrkräfte die Classroom-UI verwenden, können sie erst benoten, wenn sie zuvor einen Notenentwurf gespeichert haben. Die benotete Note kann dann an einen Schüler/Studenten zurückgegeben werden. Anwendungen müssen dieses Verhalten emulieren. Es gibt zwei Möglichkeiten, die Aufgabe eines Schülers oder Studenten zu benoten:
Weisen Sie nur
draftGrade
zu. Das ist z. B. hilfreich, um die Lehrkraft die Noten manuell überprüfen zu lassen, bevor sie sie fertigstellen können. Schüler oder Studenten können sich Notenentwürfe nicht ansehen.Weisen Sie sowohl
draftGrade
als auchassignedGrade
zu, um eine Aufgabe vollständig zu benoten.