Interfejs Classroom obsługuje 5 typów zadań: projekty, testy, pytania jednokrotnego wyboru, pytania z krótką odpowiedzią i materiały. Interfejs Classroom API obsługuje obecnie trzy z tych typów, które w interfejsie API są nazywane CourseWorkType
: zadania, pytania z krótką odpowiedzią i pytania jednokrotnego wyboru.
Aby uzyskać dostęp do tej funkcji, możesz użyć zasobu z zadaniami, który reprezentuje projekt lub pytanie przypisane uczniom w ramach danego kursu, w tym wszelkie dodatkowe materiały i szczegóły, takie jak termin wykonania lub maksymalna liczba punktów.
Oprócz zasobu CourseWork możesz zarządzać ukończonymi pracami domowymi za pomocą zasobu StudentSubmission
. W poniższych sekcjach opisujemy je bardziej szczegółowo.
tworzenia projektów,
Projekty mogą być tylko tworzone w imieniu nauczycieli zajęć, a próba utworzenia projektu na zajęciach w imieniu ucznia spowoduje błąd 403 PERMISSION_DENIED
. Administratorzy domen nie mogą też tworzyć projektów dla zajęć, których nie prowadzą. Próba wykonania tej czynności za pomocą interfejsu API spowoduje błąd 403 PERMISSION_DENIED
.
Podczas tworzenia zadań za pomocą metody courses.courseWork.create
możesz dołączać linki jako materials
, jak pokazano w przykładowym kodzie poniżej:
Java
Python
Wynik zawiera przypisany przez serwer identyfikator, który można wykorzystać do odwołania się do przypisania w innych żądaniach interfejsu API.
Aby uwzględnić połączone materiały w zadaniu utworzonym za pomocą interfejsu Classroom API, użyj zasobu linku, podając docelowy adres URL. Classroom automatycznie pobiera tytuł i miniaturę. Interfejs Classroom API obsługuje też wbudowane materiały z Dysku Google i YouTube, które można dodawać za pomocą zasobu DriveFile lub zasobu YouTubeVideo w podobny sposób.
Aby określić termin, ustaw pola dueDate
i dueTime
na odpowiadający czas UTC. Termin musi przypadać w przyszłości.
Pobieranie projektów i pytań
Projekty i pytania mogą pobrać uczniowie i nauczyciele odpowiedniego kursu lub administrator domeny. Aby pobrać konkretne zadanie lub pytanie, użyj courses.courseWork.get. Aby pobrać wszystkie zadania lub pytania (opcjonalnie dopasowane do określonych kryteriów), użyj kursu.courseWork.list.
Wymagany zakres zależy od roli użytkownika w kursie. 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 projektu lub pytania nie oznacza uprawnień do uzyskiwania dostępu do materiałów lub 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ęć. Jeśli chcesz zezwolić administratorom na dostęp do plików użytkowników, zapoznaj się z tym przewodnikiem po przekazywaniu uprawnień na poziomie domeny.
Zarządzanie odpowiedziami uczniów
Zasób StudentSubmission
reprezentuje wykonane zadanie i ocenę ucznia za projekt lub pytanie. Podczas tworzenia nowego pytania lub projektu dla każdego ucznia jest automatycznie tworzony zasób 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 przesłaniu ucznia przypisany jest identyfikator. Jeśli znasz ten identyfikator, możesz go pobrać, używając courses.courseWork.studentSubmissions.get
.
Aby pobrać 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 użytkownika zwracanego przez pakiet Google Admin SDK. 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 na zajęciach. W tym celu użyj literalu "-"
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 pobrania przesłanych przez ucznia treści 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ęć. Jeśli chcesz zezwolić administratorom na dostęp do plików użytkowników, zapoznaj się z przewodnikiem po delegowaniu uprawnień na poziomie domeny.
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 linku jest definiowany przez docelowy adres URL. Classroom automatycznie pobiera tytuł i miniaturę. Więcej informacji o pozostałych materiałach znajdziesz na ich stronach referencyjnych.
StudentSubmission
może być modyfikowana tylko przez nauczyciela prowadzącego zajęcia lub przez ucznia, który jest ich właścicielem. Możesz dołączyć Materials
tylko wtedy, gdy CourseWorkType
przesłany przez ucznia projekt ma wartość ASSIGNMENT
.
Wymagany zakres zależy od roli użytkownika w kursie. 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