Interfejs Classroom obsługuje 5 typów zadań: Projekty, Testy, Pytania z krótką odpowiedzią, Pytania jednokrotnego wyboru 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 kolejnych sekcjach
opisujemy je bardziej szczegółowo.
tworzenia projektów,
Projekty mogą tylko być tworzone w imieniu nauczycieli zajęć, a próba utworzenia projektu na zajęciach w imieniu ucznia spowoduje błąd 403 PERMISSION_DENIED
. Podobnie administratorzy domeny nie mogą też tworzyć przypisań do zajęć, których nie uczą. Próba utworzenia ich za pomocą interfejsu API spowoduje też 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 danego kursu lub administrator domeny. Aby pobrać konkretne zadanie lub pytanie, użyj courses.courseWork.get. Aby pobrać wszystkie projekty lub pytania (opcjonalnie pasujące do niektórych kryteriów), użyj polecenia courses.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 ani metadanych materiałów. W praktyce oznacza to, że administrator może nie zobaczyć tytułu dołą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 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 domyślnie tworzony zasób StudentSubmission
.
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ć 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
.
Użyj metody courses.courseWork.studentSubmissions.list
, aby pobrać zasoby StudentSubmission
spełniające określone kryteria, tak jak 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ż uzyskać dostęp do prac uczniów w ramach wszystkich projektów na zajęciach. 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
Posiadanie uprawnień do pobierania zadań przesłanych przez ucznia nie oznacza uprawnień 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 uczniów
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ć modyfikowany tylko przez nauczyciela prowadzącego zajęcia lub ucznia, który jest jego właścicielem. Materials
możesz załączyć tylko wtedy, gdy CourseWorkType
pliku przesłanego przez ucznia to ASSIGNMENT
.
Wymagany zakres zależy od roli, jaką użytkownik wysyłający prośbę ma w zajęciach. 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