Приложение 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