Interfejs Classroom obsługuje 5 typów zadań: Projekty,
projekty testów, pytania z krótką odpowiedzią, pytania jednokrotnego wyboru;
Materiały. Interfejs Classroom API obsługuje obecnie 3 z tych typów,
są określane jako CourseWorkType
w przypadku interfejsu API: Projekty, Krótka odpowiedź
i pytania jednokrotnego wyboru.
Aby uzyskać dostęp do tej funkcji, możesz użyć zasób CourseWork, które reprezentują zadanie lub pytanie przypisane uczniom danego szkolenia, w tym wszelkie dodatkowe materiały i szczegóły, takie jak termin datę lub maksymalną liczbę punktów.
Oprócz zasobu CourseWork możesz zarządzać ukończonymi projektami
z zasobem StudentSubmission
. W sekcjach poniżej
.
Tworzenie projektów
Projekty można tworzyć wyłącznie w imieniu nauczycieli.
próba utworzenia projektów na zajęciach w imieniu ucznia spowoduje
w błędzie 403 PERMISSION_DENIED
. Podobnie administratorzy domeny nie mogą tworzyć
projektów na zajęcia, których nie uczą i próby wykonania za pomocą interfejsu API;
spowoduje również błąd 403 PERMISSION_DENIED
.
Tworząc projekty za pomocą metody courses.courseWork.create
,
może dołączać linki jako element materials
widoczny w przykładowym kodzie poniżej:
Java
Python
Wynik zawiera identyfikator przypisany przez serwer, którego można użyć do odwoływania się w innych żądaniach do interfejsu API.
Aby uwzględnić połączone materiały w projekcie utworzonym przy użyciu interfejsu Classroom API: użyj zasobu linku, który określa docelowy URL. Classroom automatycznie pobierze tytuł i obraz miniatury. Interfejs Classroom API natywnie obsługuje też Dysk Google i materiały YouTube, które mogą dołączane do zasobu DriveFile lub zasobu wideo w YouTube o podobnym sposób.
Aby określić termin, w polach dueDate
i dueTime
ustaw wartość
odpowiadającego czasowi UTC. Termin musi przypadać w przyszłości.
Pobieranie projektów i pytań
Możesz pobierać projekty i pytania dla uczniów i nauczycieli w na odpowiednich zajęciach lub przez administratora domeny. Aby pobrać określoną projektu lub pytania, skorzystaj z kursów.courseWork.get. Aby pobrać wszystkie projektów lub pytań (opcjonalnie spełniających niektóre kryteria), użyj courses.courseWork.list.
Wymagany zakres zależy od roli, jaką użytkownik wysyłający prośbę ma w Google Cloud. Jeśli użytkownik jest uczniem, użyj jednego z tych zakresów:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
Jeśli użytkownik jest nauczycielem lub administratorem domeny, użyj jednej z tych metod: zakresy:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Posiadanie uprawnień do pobierania projektu lub pytania nie oznacza, pozwolenia na dostęp do materiałów lub ich metadanych. W praktyce oznacza to, administrator może nie zobaczyć tytułu dołączonego pliku z Dysku, jeśli nie jest członkiem zajęć. Jeśli chcesz zezwolić administratorom na dostęp do konta użytkownika plików, patrz sekcja dla całej domeny przekazanie dostępu Google.
Zarządzanie odpowiedziami uczniów
StudentSubmission
reprezentuje pracę ucznia i ocenę ucznia za projekt lub
pytanie. StudentSubmission
jest niejawnie tworzony dla każdego ucznia, gdy nowe pytanie lub
projekt został utworzony.
W sekcjach poniżej znajdziesz omówienie typowych działań związanych z zarządzaniem odpowiedziami uczniów.
Pobieranie odpowiedzi uczniów
Uczniowie mogą pobierać własne zadania, a nauczyciele – pobierać zadania
dla wszystkich uczestników zajęć, a administratorzy domeny mogą pobrać
przesłanych przez wszystkich uczniów w domenie. Zadanie przesłane przez ucznia
przypisać identyfikator; jeśli znasz identyfikator, użyj
courses.courseWork.studentSubmissions.get
, aby go pobrać.
Użyj metody courses.courseWork.studentSubmissions.list
, aby uzyskać
StudentSubmission
zasobów, które spełniają określone kryteria, jak pokazano w
ten przykład:
Java
Python
Pobieranie zasobów StudentSubmission
należących do określonego ucznia przez
określając parametr userId
, jak w tym przykładzie:
Java
Python
Uczniowie są identyfikowani po unikalnym identyfikatorze lub adresie e-mail użytkownika,
zwracane przez pakiet SDK Google Admin. Bieżący użytkownik może również odnieść się do własnej
Identyfikator utworzony za pomocą skrótu "me"
.
Można również pobierać projekty przesłane przez uczniów do wszystkich projektów w
Google Cloud. Aby to zrobić, użyj literału "-"
jako elementu courseWorkId
, jak pokazano na ekranie
ten przykład:
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()
Wymagany zakres zależy od roli, jaką użytkownik wysyłający prośbę ma w Google Cloud. Jeśli użytkownik jest nauczycielem lub domeną, użyj tego zakresu administrator:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Jeśli użytkownik jest uczniem, użyj tego zakresu:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
Posiadanie uprawnień do pobierania zadań przesłanych przez ucznia nie oznacza, uprawnień dostępu do załączników lub metadanych załączników. W praktyce oznacza, że administrator może nie zobaczyć tytułu dołączonego pliku z Dysku, jeśli ale nie są oni w tych zajęciach. Jeśli chcesz zezwolić administratorom na dostęp plików użytkowników, patrz Przewodnika przekazywania dostępu w całej domenie.
Dodawanie załączników do odpowiedzi uczniów
Możesz załączyć linki do zadań przesłanych przez ucznia, dołączając Link
,
DriveFile
lub YouTubeVideo
zasób. Odbywa się to za pomocą
courses.courseWork.studentSubmissions.modifyAttachments
, jak widać w tabeli
ten przykład:
Java
Python
Załącznik linku jest definiowany przez docelowy adres URL. Classroom będzie automatycznie pobrać tytuł i obraz miniatury. Pozostałe materiały znajdziesz na stronie odpowiednie strony referencyjne.
StudentSubmission
może zmodyfikować tylko nauczyciel lub
do ucznia. Materials
możesz załączyć tylko wtedy, gdy
CourseWorkType
zadania przesłane przez ucznia wynosi ASSIGNMENT
.
Wymagany zakres zależy od roli, jaką użytkownik wysyłający prośbę ma w Google Cloud. Jeśli użytkownik jest nauczycielem, użyj tego zakresu:
https://www.googleapis.com/auth/classroom.coursework.students
Jeśli użytkownik jest uczniem, użyj tego zakresu:
https://www.googleapis.com/auth/classroom.coursework.me
Zarządzanie stanem odpowiedzi ucznia
Odpowiedź ucznia może zostać wycofana, oddana lub zwrócona. Pole stanu
w polu StudentSubmission
wskazuje obecny stan. Aby zmienić stan, wywołaj
jedną z tych metod:
courses.courseWork.studentSubmissions.turnIn
courses.courseWork.studentSubmissions.return
courses.courseWork.studentSubmissions.reclaim
Wszystkie te metody przyjmują puste treści. Przykład:
Java
Python
service.courses().courseWork().studentSubmission().turnIn(
courseId=<course ID or alias>,
courseWorkId=<courseWork ID>,
id=<studentSubmission ID>,
body={}).execute()
Tylko uczeń, który jest właścicielem elementu StudentSubmission
, może go oddać lub odzyskać.
Można odzyskać tylko oddane zadania. Nauczyciele mogą zwrócić tylko
StudentSubmission
oddanych.
Ocenianie odpowiedzi uczniów
Zasób StudentSubmission
ma 2 pola do przechowywania ocen:
assignedGrade
, czyli ocena przekazywana uczniom, i draftGrade
,
czyli wstępna ocena widoczna tylko dla nauczycieli. Te pola zostały zaktualizowane
przy użyciu courses.courseWork.studentSubmissions.patch
z maską pola
zawierających odpowiednie pola, jak pokazano w poniższym przykładzie.
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()
Podczas pracy z interfejsem Classroom nauczyciele nie mogą wystawiać ocen, dopóki nie mają najpierw zapisane oceny robocze. Przypisana ocena może zostać zwrócona uczniami. Aplikacje muszą emulować to zachowanie. Twoja aplikacja może ocenić projekt ucznia na jeden z dwóch sposobów:
Przypisz tylko
draftGrade
. Przydaje się to na przykład, pozwalając nauczycielowi ręcznie sprawdzać oceny przed ich sfinalizowaniem. Uczniowie nie widzą ocen roboczych.Aby w pełni ocenić projekt, przypisz zadania
draftGrade
iassignedGrade
.
Wyświetl listę przypisanych ocen
Aby wyświetlić listę wszystkich ocen za dany element kursu, zapoznaj się z
Obiekt odpowiedzi metody courses.courseWork.studentSubmissions.list
:
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'))}")