La app de Classroom admite tres tipos de elementos de la secuencia: CourseWork
, CourseWorkMaterials
y Announcements
. En esta guía, se describe cómo administrar CourseWork
, pero las APIs de todos los elementos de la transmisión son similares. Consulta Recursos de la API para obtener más información sobre los tipos de elementos de transmisión y sus diferencias.
El recurso CourseWork
representa un elemento de trabajo que se asignó a estudiantes de un curso en particular, incluidos los materiales y detalles adicionales, como la fecha límite o la puntuación máxima. Hay cuatro subtipos de CourseWork
:
tareas, tareas de cuestionario, preguntas de respuesta corta y preguntas de opción múltiple. La API de Classroom admite tres de estos subtipos: tareas, preguntas de respuesta corta y preguntas de opción múltiple. Estos tipos se representan con el campo CourseWork.workType
.
Además del recurso CourseWork
, puedes administrar el trabajo completado con el recurso StudentSubmission
.
Crea CourseWork
CourseWork
solo se puede crear en nombre del profesor del curso.
Si intentas crear un CourseWork
en nombre de un estudiante o de un administrador de dominio que no sea profesor del curso, se producirá un error PERMISSION_DENIED
. Consulta Tipos de usuarios para obtener más información sobre los diferentes roles en Classroom.
Cuando creas CourseWork
con el método courses.courseWork.create
, puedes adjuntar vínculos como materials
, como se muestra en el siguiente código de ejemplo:
Java
Python
Los campos title
y workType
son obligatorios. Todos los demás campos son opcionales.
Si no se especifica state
, se crea CourseWork
en estado de borrador.
Usa un recurso de vínculo con un url
de destino especificado para incluir materiales vinculados en el CourseWork
. Classroom recupera automáticamente la URL de la imagen en miniatura (thumbnailUrl
) y el title
. La API de Classroom también admite de forma nativa los materiales de Google Drive y YouTube, que se pueden incluir con un recurso DriveFile o un recurso YouTubeVideo de manera similar.
Para especificar una fecha límite, establece los campos dueDate
y dueTime
en la hora UTC correspondiente. La fecha límite debe ser posterior a la fecha actual.
La respuesta de CourseWork
incluye un identificador asignado por el servidor que se puede usar para hacer referencia a la asignación en otras solicitudes de la API.
Recupera CourseWork
Puedes recuperar CourseWork
en nombre de los estudiantes y profesores del curso correspondiente. También puedes recuperar CourseWork
en nombre de los administradores del dominio, incluso si no son profesores del curso. Para recuperar un CourseWork
específico, usa courses.courseWork.get
. Para recuperar todos los CourseWork
(opcionalmente, que coincidan con algunos criterios), usa courses.courseWork.list
.
El alcance requerido depende del rol que tiene el usuario solicitante en el curso. Si el usuario es estudiante, usa uno de los siguientes alcances:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
Si el usuario es profesor o administrador del dominio, usa uno de los siguientes alcances:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Tener permiso para recuperar un CourseWork
no implica tener permiso para acceder a materiales o metadatos de materiales. En la práctica, esto significa que un administrador no podrá ver el título de un archivo adjunto de Drive si no es miembro del curso.
Administra las respuestas de los estudiantes
Un recurso StudentSubmission
representa el trabajo que realiza un estudiante para un CourseWork
. El recurso incluye metadatos relacionados con el trabajo, como el estado y la calificación. Se crea un StudentSubmission
de forma implícita para cada estudiante cuando se crea un CourseWork
nuevo.
En las siguientes secciones, se explican las acciones comunes que administran las respuestas de los estudiantes.
Cómo recuperar las respuestas de los estudiantes
Los estudiantes pueden recuperar sus propias entregas, los profesores pueden recuperar las entregas de todos los estudiantes de sus cursos y los administradores del dominio pueden recuperar todas las entregas de todos los estudiantes de su dominio. A cada StudentSubmission
se le asigna un identificador. Si conoces el identificador, usa courses.courseWork.studentSubmissions.get
para recuperar el envío.
Usa el método courses.courseWork.studentSubmissions.list
para obtener todos los recursos StudentSubmission
que coincidan con algunos criterios, como se muestra en el siguiente ejemplo:
Java
Python
Recupera los recursos StudentSubmission
que pertenecen a un estudiante en particular especificando el parámetro userId
, como se muestra en el siguiente ejemplo:
Java
Python
Los estudiantes se identifican por el ID único o la dirección de correo electrónico, como se representa en el recurso Student
. El usuario actual también puede hacer referencia a su propio ID con la abreviatura "me"
.
También es posible recuperar las entregas de los estudiantes para todas las tareas de un curso. Para ello, usa el literal "-"
como courseWorkId
, como se muestra en el siguiente ejemplo:
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()
El alcance requerido depende del rol que tiene el usuario solicitante en el curso. Si el usuario es profesor o administrador del dominio, usa el siguiente alcance:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Si el usuario es estudiante, usa el siguiente alcance:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
Tener permiso para recuperar un StudentSubmission
no implica tener permiso para acceder a los archivos adjuntos o a sus metadatos. En la práctica, esto significa que un administrador no podrá ver el título de un archivo adjunto de Drive si no es miembro del curso.
Cómo agregar archivos adjuntos a la respuesta de un estudiante
Puedes adjuntar vínculos a la entrega de un estudiante adjuntando un recurso Link
, DriveFile
o YouTubeVideo
. Esto se hace con courses.courseWork.studentSubmissions.modifyAttachments
, como se muestra en el siguiente ejemplo:
Java
Python
Un adjunto Link
se define por el objetivo url
. Classroom recupera automáticamente la imagen en miniatura (thumbnailUrl
) y el title
. Consulta Material
para obtener información sobre los materiales que se pueden adjuntar a StudentSubmissions
.
Solo un profesor del curso o el estudiante propietario del StudentSubmission
pueden modificarlo. Solo puedes adjuntar Materials
si el CourseWorkType
del StudentSubmission
es ASSIGNMENT
.
El alcance requerido depende del rol que tiene el usuario solicitante en el curso. Si el usuario es profesor, usa el siguiente alcance:
https://www.googleapis.com/auth/classroom.coursework.students
Si el usuario es estudiante, usa el siguiente alcance:
https://www.googleapis.com/auth/classroom.coursework.me