Приложение Classroom поддерживает три типа элементов потока: CourseWork
, CourseWorkMaterials
и Announcements
. В этом руководстве описывается, как управлять CourseWork
, но API для всех элементов потока одинаковы. См. ресурсы API , чтобы узнать больше о типах элементов потока и их различиях.
Ресурс CourseWork
представляет собой рабочий элемент, назначенный учащимся определенного курса, включая любые дополнительные материалы и сведения, такие как срок сдачи или максимальный балл. Существует четыре подтипа CourseWork
: задания , тестовые задания , вопросы с короткими ответами и вопросы с несколькими вариантами ответов . API Класса поддерживает три из этих подтипов: задания, вопросы с коротким ответом и вопросы с несколькими вариантами ответов. Эти типы представлены полем CourseWork.workType
.
Помимо ресурса CourseWork
, вы можете управлять выполненной работой с помощью ресурса StudentSubmission
.
Создать курсовую работу
CourseWork
может быть создан только от имени преподавателя курса. Попытка создать CourseWork
от имени учащегося или администратора домена, который не является преподавателем курса, приводит к ошибке PERMISSION_DENIED
. Ознакомьтесь с типами пользователей , чтобы узнать больше о различных ролях в Классе.
При создании CourseWork
с помощью courses.courseWork.create
вы можете прикреплять ссылки в качестве materials
, как показано в примере кода ниже:
Ява
Питон
Поля title
и workType
являются обязательными. Все остальные поля являются необязательными. Если state
не указано, CourseWork
создается в состоянии черновика.
Используйте ресурс Link с указанным целевым url
, чтобы включить связанные материалы в CourseWork
. Класс автоматически получает URL-адрес title
и миниатюры изображения ( 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
вы знаете идентификатор, используйте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
; Класс автоматически извлекает 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