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