La IU de Classroom admite cinco tipos de trabajo en clase: Tareas, tareas con cuestionario, preguntas de respuesta corta, preguntas de opción múltiple y materiales. Actualmente, la API de Classroom admite tres de estos tipos, que se conocen como CourseWorkType
para la API: Tareas, Preguntas de respuesta corta y Preguntas de opción múltiple.
Para acceder a esta función, puedes usar el recurso CourseWork, que representa una tarea o pregunta 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.
Además del recurso CourseWork, puedes administrar las tareas completadas con el recurso StudentSubmission
. En las siguientes secciones, se describen estos aspectos con más detalle.
Cómo crear tareas
Las tareas solo se pueden crear en nombre de los profesores del curso. Si intentas crear tareas en un curso en nombre de un estudiante, se mostrará un error PERMISSION_DENIED
403. Del mismo modo, los administradores de dominios tampoco pueden crear tareas para cursos que no imparten, y si intentan hacerlo a través de la API, también se mostrará un error PERMISSION_DENIED
403.
Cuando crees tareas 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
El resultado incluye un identificador asignado por el servidor que se puede usar para hacer referencia a la asignación en otras solicitudes a la API.
Para incluir materiales vinculados en una tarea creada con la API de Classroom, usa un recurso de vínculo y especifica la URL de destino. Classroom recupera automáticamente el título y la imagen de la miniatura. 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.
Cómo recuperar tareas y preguntas
Puedes recuperar tareas y preguntas para estudiantes y profesores del curso correspondiente o un administrador de dominio. Para recuperar una tarea o pregunta específica, usa courses.courseWork.get. Para recuperar todas las tareas o preguntas (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 una tarea o una pregunta no implica permisos para acceder a los materiales ni a sus metadatos. En la práctica, esto significa que es posible que un administrador no vea el título de un archivo adjunto de Drive si no es miembro del curso. Si quieres permitir que los administradores accedan a los archivos del usuario, consulta la guía de delegación en todo el dominio.
Administra las respuestas de los estudiantes
Un recurso StudentSubmission
representa el trabajo realizado y la calificación de un estudiante para una tarea o pregunta. Se crea implícitamente un recurso StudentSubmission
para cada alumno cuando se crea una pregunta o tarea nueva.
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 entrega del estudiante se le asigna un identificador. Si conoces el identificador, usa courses.courseWork.studentSubmissions.get
para recuperarlo.
Usa el método courses.courseWork.studentSubmissions.list
para obtener recursos StudentSubmission
que coincidan con algunos criterios, como se muestra en el siguiente ejemplo:
Java
Python
Para recuperar los recursos StudentSubmission
que pertenecen a un estudiante en particular, especifica 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 del usuario, como lo muestra el SDK de Google Admin. El usuario actual también puede hacer referencia a su propio ID con la abreviatura "me"
.
También es posible obtener las entregas de los estudiantes de 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 tenga el usuario solicitante en el curso. Usa el siguiente permiso si el usuario es profesor o administrador de dominio:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Usa el siguiente permiso si el usuario es estudiante:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
Tener permiso para recuperar el envío de un estudiante 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. Si quieres permitir que los administradores accedan a los archivos de los usuarios, consulta la guía de delegación de todo el dominio.
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:
Java
Python
La URL de destino define un archivo adjunto de vínculo. Classroom recuperará automáticamente el título y la imagen de miniatura. Puedes obtener información sobre los otros materiales en sus respectivas páginas de referencia.
Solo el profesor del curso o el estudiante propietario puede modificar el StudentSubmission
. Solo puedes adjuntar Materials
si el CourseWorkType
del envío del estudiante es ASSIGNMENT
.
El alcance requerido depende del rol que tenga el usuario solicitante en el curso. Usa el siguiente permiso si el usuario es profesor:
https://www.googleapis.com/auth/classroom.coursework.students
Usa el siguiente permiso si el usuario es estudiante:
https://www.googleapis.com/auth/classroom.coursework.me