Die Classroom-Benutzeroberfläche unterstützt fünf Arten von Kursaufgaben: das Tool „Aufgaben“,
Aufgaben mit Quiz, Fragen mit Kurzantworten, Multiple-Choice-Fragen und
Materialien. Die Classroom API unterstützt derzeit drei dieser Typen.
werden als CourseWorkType
für die API „Aufgaben“, „Kurzantwort“ bezeichnet.
und Multiple-Choice-Fragen.
Um auf diese Funktion zuzugreifen, verwenden Sie den CourseWork-Ressource einer Aufgabe oder Frage, die Schülern in einem bestimmten Kurs, einschließlich zusätzlicher Materialien und Details wie oder der Höchstpunktzahl.
Neben der CourseWork-Ressource können Sie erledigte Aufgaben verwalten
durch die Ressource StudentSubmission
. In den folgenden Abschnitten werden diese
im Detail an.
Aufgaben erstellen
Aufgaben können nur im Namen von Lehrkräften und Lehrkräften des Kurses erstellt werden.
wenn Sie versuchen, im Namen eines Schülers/Studenten Aufgaben in einem Kurs zu erstellen,
in einem 403-PERMISSION_DENIED
-Fehler zurückgegeben. Domainadministratoren können ebenfalls keine
Aufgaben für Kurse, die sie nicht leiten, und versuchen, dies über die API zu erledigen
führt ebenfalls zu einem 403-Fehler PERMISSION_DENIED
.
Wenn Sie Zuweisungen mit der Methode courses.courseWork.create
erstellen, gehen Sie so vor:
können Links als materials
anhängen, wie im Beispielcode unten zu sehen:
Java
Python
Das Ergebnis enthält eine vom Server zugewiesene ID, die als Referenz verwendet werden kann. die Zuweisung in anderen API-Anfragen.
So fügen Sie verknüpfte Materialien in eine Aufgabe ein, die über die Classroom API erstellt wurde: Verwenden Sie eine Linkressource und geben Sie Ziel-URL Classroom ruft automatisch den Titel und das Thumbnail ab. Die Classroom API unterstützt außerdem nativ Google Drive- und YouTube-Materialien, in einer DriveFile-Ressource enthalten oder YouTubeVideo-Ressource in einer ähnlichen
Wenn Sie einen Abgabetermin angeben möchten, setzen Sie die Felder dueDate
und dueTime
auf den
entsprechende UTC-Zeit. Das Fälligkeitsdatum muss in der Zukunft liegen.
Aufgaben und Fragen abrufen
Sie können Aufgaben und Fragen für Schüler/Studenten und Lehrkräfte der für den entsprechenden Kurs oder einen Domainadministrator. Um eine bestimmte Aufgabe oder Frage, verwenden Sie "courses.courseWork.get". Alle abrufen Aufgaben oder Fragen (optional, die einige Kriterien erfüllen), verwenden courses.courseWork.list.
Der erforderliche Bereich hängt von der Rolle ab, die der anfragende Nutzer im . Wenn der Nutzer ein Schüler oder 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 eine der folgenden Optionen: Umfänge:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Eine Berechtigung zum Abrufen einer Aufgabe oder Frage ist nicht automatisch Berechtigungen für den Zugriff auf Materialien oder Materialmetadaten. In der Praxis bedeutet das, dass ein Administrator den Titel einer angehängten Drive-Datei möglicherweise nicht sieht, kein Mitglied des Kurses. Wenn Sie Administratoren Zugriff auf den erhalten Sie unter Domainweite Delegierung .
Antworten von Schülern und Studenten verwalten
StudentSubmission
Ressource die geleistete und benotete Arbeit eines Schülers/Studenten für eine Aufgabe oder
Frage. StudentSubmission
wird implizit für jeden Schüler/Studenten erstellt, wenn eine neue Frage oder
Aufgabe erstellt.
In den folgenden Abschnitten werden gängige Aktionen erläutert, mit denen die Antworten von Schülern und Studenten verwaltet werden.
Antworten von Schülern/Studenten abrufen
Schüler/Studenten können ihre eigenen Aufgaben abrufen, Lehrkräfte können Aufgaben abrufen
und Domainadministratoren können alle
abgegebenen Aufgaben für alle Schüler/Studenten in ihrer Domain. Jede abgegebene Aufgabe eines Schülers/Studenten
einer Kennung zugewiesen ist, wenn Sie die ID kennen, verwenden Sie
courses.courseWork.studentSubmissions.get
, um sie abzurufen.
Verwenden Sie die Methode courses.courseWork.studentSubmissions.list
, um
StudentSubmission
Ressourcen, die bestimmten Kriterien entsprechen, wie in der
folgendes Beispiel:
Java
Python
StudentSubmission
-Ressourcen eines bestimmten Schülers/Studenten abrufen, indem
Dabei wird der Parameter userId
angegeben, wie im folgenden Beispiel gezeigt:
Java
Python
Schüler/Studenten werden anhand ihrer eindeutigen ID oder E-Mail-Adresse identifiziert:
die vom Google Admin SDK zurückgegeben werden. Der aktuelle Nutzer kann auch auf seine eigenen
ID mithilfe der Abkürzung "me"
.
Es ist auch möglich, abgegebene Aufgaben für alle Aufgaben innerhalb eines
. Dazu verwenden Sie das Literal "-"
als courseWorkId
, wie in den
folgendes Beispiel:
Java
service.courses().courseWork().studentSubmissions()
.list(courseId, "-")
.set("userId", userId)
.execute();
Python
service.courses().courseWork().studentSubmissions().list(
courseId=<course ID or alias>,
courseWorkId='-',
userId=<user ID>).execute()
Der erforderliche Bereich hängt von der Rolle ab, die der anfragende Nutzer im . Verwenden Sie den folgenden Bereich, wenn der Nutzer eine Lehrkraft oder eine Domain ist Administrator:
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 ein Schüler/Student ist:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
Die Erlaubnis zum Abrufen einer abgegebenen Aufgabe von Schülern oder Studenten bedeutet nicht, Berechtigungen für den Zugriff auf Anhänge oder Metadaten von Anhängen. In der Praxis bedeutet das kann es vorkommen, dass ein Administrator den Titel einer angehängten Drive-Datei nicht sehen kann, wenn kein Mitglied des Kurses. Wenn Sie Administratoren Zugriff gewähren möchten auf Nutzerdateien finden, Leitfaden für die domainweite Delegierung.
Einer Antwort von Schülern/Studenten Anhänge hinzufügen
Sie können an die Aufgabe eines Schülers/Studenten Links anhängen, indem Sie Folgendes anhängen: Link
,
DriveFile
- oder YouTubeVideo
-Ressource. Dies geschieht mit
courses.courseWork.studentSubmissions.modifyAttachments
, wie in den
folgendes Beispiel:
Java
Python
Ein Linkanhang wird durch die Ziel-URL definiert. Classroom wird automatisch den Titel und das Thumbnail abrufen. Informationen zu den anderen Materialien finden Sie unter ihre jeweiligen Referenzseiten.
Das StudentSubmission
kann nur von einer Lehrkraft oder von
die Person,
der sie gehört. Sie können Materials
nur anhängen, wenn das
CourseWorkType
der eingereichten Inhalte des Schülers/Studenten betragen ASSIGNMENT
.
Der erforderliche Bereich hängt von der Rolle ab, die der anfragende Nutzer im . Wenn der Nutzer eine Lehrkraft ist, verwenden Sie den folgenden Bereich:
https://www.googleapis.com/auth/classroom.coursework.students
Verwenden Sie den folgenden Bereich, wenn der Nutzer ein Schüler/Student ist:
https://www.googleapis.com/auth/classroom.coursework.me
Antwortstatus der Schüler/Studenten verwalten
Die Antwort eines Schülers oder Studenten kann zurückgezogen, abgegeben oder zurückgegeben werden. Das Feld „state“
in StudentSubmission
gibt den aktuellen Status an. Rufen Sie zum Ändern des Status
eine der folgenden Methoden:
courses.courseWork.studentSubmissions.turnIn
courses.courseWork.studentSubmissions.return
courses.courseWork.studentSubmissions.reclaim
Alle diese Methoden verwenden einen leeren Textkörper. Beispiel:
Java
Python
service.courses().courseWork().studentSubmission().turnIn(
courseId=<course ID or alias>,
courseWorkId=<courseWork ID>,
id=<studentSubmission ID>,
body={}).execute()
Nur der Schüler oder Studenten, dem ein StudentSubmission
gehört, kann es abgeben oder zurückfordern.
Nur eine abgegebene Aufgabe kann zurückgefordert werden. Lehrkräfte können nur
StudentSubmission
mit dem Status „Abgegeben“
Antworten der Schüler/Studenten benoten
Die Ressource StudentSubmission
hat zwei Felder zum Speichern von Noten:
assignedGrade
, die Note, die den Schülern/Studenten mitgeteilt wird, und draftGrade
,
Dies ist eine vorläufige Note, die nur für Lehrkräfte sichtbar ist. Diese Felder wurden aktualisiert
courses.courseWork.studentSubmissions.patch
mit einer Feldmaske verwenden
die die entsprechenden Felder enthalten, wie im folgenden Beispiel gezeigt.
Java
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()
Mit der Classroom-Benutzeroberfläche können Lehrkräfte erst eine Note vergeben, wenn sie haben zuerst einen Notenentwurf gespeichert. Die zugewiesene Note kann dann an Schüler oder Studenten. Anwendungen müssen dieses Verhalten emulieren. Ihre Anwendung kann Sie haben zwei Möglichkeiten, die Aufgabe eines Schülers/Studenten zu benoten:
Weisen Sie nur die
draftGrade
zu. Dies ist beispielsweise nützlich, damit die Lehrkraft die Noten manuell zu überprüfen, bevor Sie sie abschließen. Schüler/Studenten können keine Notenentwürfe sehen.Weisen Sie sowohl
draftGrade
als auchassignedGrade
zu, um eine Aufgabe vollständig zu benoten.
Zugewiesene Noten auflisten
Sie können alle Noten für eine bestimmte Kursaufgabe auflisten, indem Sie die
courses.courseWork.studentSubmissions.list
-Antwortobjekt:
Java
Python
response = coursework.studentSubmissions().list(
courseId=course_id,
courseWorkId=coursework_id,
pageSize=10).execute()
submissions.extend(response.get('studentSubmissions', []))
if not submissions:
print('No student submissions found.')
print('Student Submissions:')
for submission in submissions:
print(f"Submitted at:"
f"{(submission.get('userId'), submission.get('assignedGrade'))}")