Приложение Classroom поддерживает три типа элементов потока: CourseWork , CourseWorkMaterials и Announcements . В этом руководстве описывается, как управлять CourseWork , но API для всех элементов потока аналогичны. См. ресурсы API , чтобы узнать больше о типах элементов потока и их различиях.
Ресурс CourseWork представляет собой задание, назначенное студентам конкретного курса, включая любые дополнительные материалы и подробности, такие как срок сдачи или максимальный балл. Существует четыре подтипа CourseWork : задания , тесты , вопросы с кратким ответом и вопросы с множественным выбором . API Classroom поддерживает три из этих подтипов: задания, вопросы с кратким ответом и вопросы с множественным выбором. Эти типы представлены полем CourseWork.workType .
Помимо ресурса CourseWork , вы можете управлять выполненными работами с помощью ресурса StudentSubmission .
Создать курсовую работу
CourseWork можно создавать только от имени преподавателя курса. Попытка создать CourseWork от имени студента или администратора домена, не являющегося преподавателем курса, приведет к ошибке PERMISSION_DENIED . Подробнее о различных ролях в Classroom см. в разделе «Типы пользователей» .
При создании CourseWork с помощью метода courses.courseWork.create можно добавлять ссылки в качестве materials , как показано в приведенном ниже примере кода:
Java
Python
Поля title и workType обязательны для заполнения. Все остальные поля необязательны. Если state не указан, CourseWork создается в черновом варианте.
Используйте ресурс «Ссылка» с указанным целевым url , чтобы включить связанные материалы в CourseWork . Classroom автоматически получает title и URL-адрес изображения-миниатюры ( thumbnailUrl ). API Classroom также изначально поддерживает материалы Google Drive и YouTube, которые можно аналогичным образом включить с помощью ресурса DriveFile или ресурса YouTubeVideo .
Чтобы указать срок выполнения, установите поля dueDate и dueTime в соответствующее время UTC. Срок выполнения должен быть в будущем.
В ответе CourseWork содержится присвоенный сервером идентификатор, который можно использовать для ссылки на задание в других запросах API.
Получить доступ к материалам курса
Вы можете получить доступ к CourseWork от имени студентов и преподавателей соответствующего курса. Вы также можете получить доступ к CourseWork от имени администраторов домена, даже если они не являются преподавателями курса. Чтобы получить доступ к конкретному CourseWork , используйте courses.courseWork.get . Чтобы получить доступ ко всем CourseWork (при необходимости соответствующим некоторым критериям), используйте courses.courseWork.list .
Необходимый уровень доступа зависит от роли пользователя, запрашивающего доступ в рамках курса. Если пользователь является студентом, используйте один из следующих уровней доступа:
-
https://www.googleapis.com/auth/classroom.coursework.me.readonly -
https://www.googleapis.com/auth/classroom.coursework.me
Если пользователь является учителем или администратором домена, используйте одну из следующих областей действия:
-
https://www.googleapis.com/auth/classroom.coursework.students.readonly -
https://www.googleapis.com/auth/classroom.coursework.students
Наличие разрешения на получение CourseWork не подразумевает разрешения на доступ к самим материалам или их метаданным. На практике это означает, что администратор может не видеть название прикрепленного файла на Google Диске, если он не является участником курса.
Управление ответами студентов
Ресурс StudentSubmission представляет собой работу, выполненную студентом в рамках CourseWork . Ресурс включает метаданные, относящиеся к работе, такие как статус работы и оценка. Ресурс StudentSubmission автоматически создается для каждого студента при создании нового CourseWork .
В следующих разделах описаны типичные действия по обработке ответов студентов.
Получить ответы студентов
Студенты могут получить доступ к своим собственным работам, преподаватели могут получить доступ к работам всех студентов в своих курсах, а администраторы домена могут получить доступ ко всем работам всех студентов в своем домене. Каждой StudentSubmission присваивается идентификатор. Если вам известен идентификатор, используйте courses.courseWork.studentSubmissions.get для получения работы.
Используйте метод courses.courseWork.studentSubmissions.list , чтобы получить все ресурсы StudentSubmission , соответствующие определенным критериям, как показано в следующем примере:
Java
Python
Чтобы получить ресурсы StudentSubmission , принадлежащие конкретному студенту, укажите параметр userId , как показано в следующем примере:
Java
Python
Студенты идентифицируются по уникальному идентификатору или адресу электронной почты, указанным в разделе Student . Текущий пользователь также может использовать свой собственный идентификатор, сокращенно "me" .
Также можно получить доступ к работам студентов, выполненным по всем заданиям в рамках курса. Для этого используйте символ "-" в качестве идентификатора courseWorkId , как показано в следующем примере:
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()
Необходимая область действия зависит от роли пользователя, запрашивающего курс. Если пользователь является преподавателем или администратором домена, используйте следующую область действия:
-
https://www.googleapis.com/auth/classroom.coursework.students.readonly -
https://www.googleapis.com/auth/classroom.coursework.students
Если пользователь является студентом, используйте следующую область действия:
-
https://www.googleapis.com/auth/classroom.coursework.me.readonly -
https://www.googleapis.com/auth/classroom.coursework.me
Наличие разрешения на получение StudentSubmission не подразумевает разрешения на доступ к вложениям или метаданным вложений. На практике это означает, что администратор может не видеть название прикрепленного файла на Google Диске, если он не является участником курса.
Добавить вложения к ответу студента
Вы можете прикрепить ссылки к работам студентов, используя ресурсы Link , DriveFile или YouTubeVideo . Это делается с помощью courses.courseWork.studentSubmissions.modifyAttachments , как показано в следующем примере:
Java
Python
Вложение Link определяется целевым url ; Classroom автоматически получает title и миниатюрное изображение ( thumbnailUrl ). См. Material , чтобы узнать о материалах, которые можно прикрепить к StudentSubmissions .
Изменить StudentSubmission может только преподаватель курса или сам студент, которому она принадлежит. Прикреплять Materials можно только в том случае, если CourseWorkType в StudentSubmission — ASSIGNMENT .
Необходимая область действия зависит от роли пользователя, запрашивающего курс. Если пользователь является преподавателем, используйте следующую область действия:
-
https://www.googleapis.com/auth/classroom.coursework.students
Если пользователь является студентом, используйте следующую область действия:
-
https://www.googleapis.com/auth/classroom.coursework.me