La app de Classroom admite tres tipos de elementos de transmisión: CourseWork
, CourseWorkMaterials
y Announcements
. En esta guía, se describe cómo administrar CourseWork
, pero las APIs de todos los elementos de transmisión son similares. Consulta los 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 los estudiantes en 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 cuestionarios, 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 trabajos del curso
CourseWork
solo se puede crear en nombre del profesor del curso.
Si intentas crear CourseWork
en nombre de un estudiante o un administrador de dominio que no es 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:
Los campos title
y workType
son obligatorios. Todos los demás campos son opcionales.
Si no se especifica state
, CourseWork
se crea en un estado de borrador.
Usa un recurso de vínculo con un objetivo url
especificado para incluir materiales vinculados en el CourseWork
. Classroom recupera automáticamente la URL de la imagen de miniatura (thumbnailUrl
) y 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 futura.
La respuesta CourseWork
incluye un identificador asignado por el servidor que se puede usar para hacer referencia a la asignación en otras solicitudes a la API.
Cómo recuperar trabajos del curso
Puedes recuperar CourseWork
en nombre de los estudiantes y profesores del curso correspondiente. También puedes recuperar CourseWork
en nombre de los administradores de dominios, incluso si no son profesores del curso. Para recuperar un CourseWork
específico, usa courses.courseWork.get
. Para recuperar todos los CourseWork
(de forma opcional, que coincidan con algunos criterios), usa courses.courseWork.list
.
El alcance requerido depende del rol que tenga el usuario solicitante en el curso. Si el usuario es estudiante, usa uno de los siguientes permisos:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
Si el usuario es profesor o administrador de 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 permisos para acceder a los materiales ni a sus metadatos. En la práctica, esto significa que un administrador puede no 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 propios envíos, los profesores pueden recuperar los envíos de todos los estudiantes de sus cursos, y los administradores de dominios pueden recuperar todos los envíos 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:
Para recuperar los recursos StudentSubmission
que pertenecen a un estudiante en particular, especifica el parámetro userId
, como se muestra en el siguiente ejemplo:
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 sigla "me"
.
También es posible recuperar las entregas de los estudiantes de todas las tareas de un curso. Para ello, usa la literal "-"
como courseWorkId
, como se muestra en el siguiente ejemplo:
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()
El alcance requerido depende del rol que tenga el usuario solicitante en el curso. Si el usuario es profesor o administrador de dominio, usa el siguiente permiso:
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 permiso:
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 permisos para acceder a los archivos adjuntos ni a sus metadatos. En la práctica, esto significa que es posible que un administrador no vea el título de un archivo de Drive adjunto si no es miembro del curso.
Cómo agregar archivos adjuntos a una respuesta de un estudiante
Para adjuntar vínculos a una entrega de un estudiante, agrega un recurso Link
, DriveFile
o YouTubeVideo
. Esto se hace con courses.courseWork.studentSubmissions.modifyAttachments
, como se muestra en el siguiente ejemplo:
El url
de destino define un archivo adjunto Link
. Classroom recupera automáticamente la title
y la imagen en miniatura (thumbnailUrl
). Consulta Material
para obtener información sobre los materiales que se pueden adjuntar a StudentSubmissions
.
Solo el profesor del curso o el estudiante propietario puede modificar el StudentSubmission
. Solo puedes adjuntar Materials
si el CourseWorkType
de StudentSubmission
es ASSIGNMENT
.
El alcance requerido depende del rol que tenga el usuario solicitante en el curso. Si el usuario es profesor, usa el siguiente permiso:
https://www.googleapis.com/auth/classroom.coursework.students
Si el usuario es estudiante, usa el siguiente permiso:
https://www.googleapis.com/auth/classroom.coursework.me