Aplikacja Classroom obsługuje 3 typy elementów strumienia: CourseWork
, CourseWorkMaterials
i Announcements
. Ten przewodnik opisuje, jak zarządzać CourseWork
, ale interfejsy API wszystkich elementów strumienia są podobne. Więcej informacji o typach elementów strumienia i ich różnicach znajdziesz w zasobach interfejsu API.
Zasób CourseWork
reprezentuje element pracy przypisany do studentów w ramach konkretnego kursu, w tym wszelkie dodatkowe materiały i szczegóły, takie jak termin wykonania lub maksymalna liczba punktów. Istnieją 4 podtypy CourseWork
: projekty, projekty – testy, pytania z krótkimi odpowiedziami i pytania jednokrotnego wyboru. Interfejs Classroom API obsługuje 3 podtypy: projekty, pytania z krótką odpowiedzią i pytania jednokrotnego wyboru. Te typy są reprezentowane przez pole CourseWork.workType
.
Oprócz zasobu CourseWork
możesz zarządzać zakończoną pracą za pomocą zasobu StudentSubmission
.
Tworzenie zadań
CourseWork
można tylko utworzyć w imieniu nauczyciela.
Próba utworzenia CourseWork
w imieniu ucznia lub administratora domeny, który nie jest nauczycielem w kursie, powoduje błąd PERMISSION_DENIED
. Aby dowiedzieć się więcej o różnych rolach w Classroom, zapoznaj się z artykułem Typy użytkowników.
Podczas tworzenia CourseWork
za pomocą metody courses.courseWork.create
możesz dołączać linki jako materials
, jak pokazano w przykładowym kodzie poniżej:
Java
Python
Pola title
i workType
są wymagane. Wszystkie pozostałe pola są opcjonalne.
Jeśli parametr state
nie jest określony, element CourseWork
jest tworzony w stanie roboczym.
Aby uwzględnić w CourseWork
połączone materiały, użyj zasobu linku z określonym celem url
. Classroom automatycznie pobiera adres URL title
i adres URL obrazu miniatury (thumbnailUrl
). Interfejs API Classroom obsługuje też natywny interfejs Google Drive i materiały z YouTube, które można dołączać w podobny sposób za pomocą zasobu DriveFile lub YouTubeVideo.
Aby określić termin, ustaw pola dueDate
i dueTime
na odpowiadający czas w UTC. Termin musi przypadać w przyszłości.
Odpowiedź CourseWork
zawiera przypisany przez serwer identyfikator, którego można użyć do odwołania się do przypisania w innych żądaniach interfejsu API.
Pobieranie CourseWork
Możesz pobrać CourseWork
w imieniu uczniów i nauczycieli danego kursu. Możesz też pobierać dane CourseWork
w imieniu administratorów domeny, nawet jeśli nie są oni nauczycielami na zajęciach. Aby pobrać konkretny CourseWork
, użyj courses.courseWork.get
. Aby pobrać wszystkie dane
CourseWork
(opcjonalnie z uwzględnieniem niektórych kryteriów), użyj parametru
courses.courseWork.list
.
Wymagany zakres zależy od roli, jaką ma użytkownik przesyłający prośbę w ramach kursu. Jeśli użytkownik jest uczniem, użyj jednego z tych zakresów uprawnień:
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 jednego z tych zakresów:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Posiadanie uprawnień do pobrania CourseWork
nie oznacza uprawnień do dostępu do materiałów ani metadanych materiałów. W praktyce oznacza to, że administrator może nie widzieć tytułu załączonego pliku na Dysku, jeśli nie jest uczestnikiem zajęć.
Zarządzanie odpowiedziami uczniów
Zasób StudentSubmission
odpowiada pracy wykonanej przez ucznia w ramach zadania CourseWork
. Zasób zawiera metadane związane z pracą, takie jak jej stan i ocena. Podczas tworzenia nowego CourseWork
dla każdego ucznia jest tworzony StudentSubmission
.
W poniższych sekcjach opisujemy typowe działania związane z zarządzaniem odpowiedziami uczniów.
Pobieranie odpowiedzi uczniów
Uczniowie mogą pobierać swoje projekty, nauczyciele mogą pobierać projekty wszystkich uczniów na swoich zajęciach, a administratorzy domen mogą pobierać wszystkie projekty wszystkich uczniów w domenie. Każdemu StudentSubmission
przypisany jest identyfikator. Jeśli znasz identyfikator, użyj courses.courseWork.studentSubmissions.get
, aby pobrać przesłane dane.
Aby pobrać wszystkie zasoby StudentSubmission
, które spełniają określone kryteria, użyj metody courses.courseWork.studentSubmissions.list
, jak pokazano w tym przykładzie:
Java
Python
Pobierz zasoby StudentSubmission
należące do konkretnego ucznia, podając parametr userId
, jak w tym przykładzie:
Java
Python
Uczniowie są identyfikowani na podstawie unikalnego identyfikatora lub adresu e-mail, jak podano w zasobie Student
. Bieżący użytkownik może też odwoływać się do swojego identyfikatora za pomocą skrótu "me"
.
Możesz też pobrać prace uczniów z wszystkich projektów w danym kursie. W tym celu użyj literalnego ciągu "-"
jako courseWorkId
, jak w tym przykładzie:
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ą ma użytkownik przesyłający prośbę w ramach kursu. Jeśli użytkownik jest nauczycielem lub administratorem domeny, użyj tego zakresu:
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
Uprawnienia do pobierania StudentSubmission
nie oznaczają uprawnień do dostępu do załączników ani metadanych załączników. W praktyce oznacza to, że administrator może nie widzieć tytułu załączonego pliku z Dysku, jeśli nie jest uczestnikiem zajęć.
Dodawanie załączników do odpowiedzi ucznia
Linki do zadań uczniów możesz dołączać, dołączając zasób Link
, DriveFile
lub YouTubeVideo
. Aby to zrobić, użyj funkcji courses.courseWork.studentSubmissions.modifyAttachments
, jak w tym przykładzie:
Java
Python
Załącznik Link
jest definiowany przez docelowy element url
; Classroom automatycznie pobiera title
i miniaturę (thumbnailUrl
). Więcej informacji o materiałach, które można dołączyć do StudentSubmissions
, znajdziesz w sekcji Material
.
StudentSubmission
może być modyfikowany tylko przez nauczyciela prowadzącego zajęcia lub ucznia, który jest jego właścicielem. Możesz załączyć Materials
tylko wtedy, gdy CourseWorkType
wartości StudentSubmission
to ASSIGNMENT
.
Wymagany zakres zależy od roli, jaką ma użytkownik przesyłający prośbę w ramach kursu. 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