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 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 de un curso en particular, incluidos los materiales y detalles adicionales, como la fecha de entrega o la puntuación máxima. Hay cuatro subtipos de CourseWork:
tareas, tareas con 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
CourseWork.workType campo.
Además del recurso CourseWork, puedes administrar el trabajo completado
con el recurso StudentSubmission.
Crear CourseWork
CourseWork solo se puede crear en nombre del profesor del curso.
Si intentas crear CourseWork en nombre de un estudiante o de un administrador de dominio que no es profesor en el curso, se produce 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 muestra:
Java
Python
Los campos title y workType son obligatorios. Todos los demás campos son opcionales.
Si no se especifica state, se crea el CourseWork en estado de borrador.
Usa un recurso Link con un destino especificado
url para incluir materiales vinculados en el CourseWork. Classroom
recupera automáticamente la title y la URL de la imagen en miniatura (thumbnailUrl). 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 de entrega, configura los campos dueDate y dueTime en la hora UTC correspondiente. La fecha de entrega debe ser posterior a la fecha actual.
La respuesta CourseWork incluye un identificador asignado por el servidor que se puede usar para hacer referencia a la tarea en otras solicitudes de la API.
Recuperar CourseWork
Puedes recuperar CourseWork en nombre de los estudiantes y profesores del curso correspondiente. También puedes recuperar CourseWork en nombre de los administradores de dominio, incluso si no son profesores en el curso. Para recuperar un
específico CourseWork, 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 tenga 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.readonlyhttps://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.readonlyhttps://www.googleapis.com/auth/classroom.coursework.students
Tener permiso para recuperar un CourseWork no implica permisos para acceder a los materiales ni a los metadatos de los materiales. En la práctica, esto significa que un administrador no puede ver el título de un archivo de Drive adjunto si no es miembro del curso.
Administra las respuestas de los estudiantes
Un recurso StudentSubmission representa el trabajo realizado por un estudiante para un
CourseWork. El recurso incluye metadatos relacionados con el trabajo, como el estado y la calificación del trabajo. 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.
Recupera las respuestas de los estudiantes
Los estudiantes pueden recuperar sus propias tareas enviadas, los profesores pueden recuperar las tareas enviadas de todos los estudiantes de sus cursos y los administradores de dominio pueden recuperar todas las tareas enviadas 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 la tarea enviada.
Usa el método courses.courseWork.studentSubmissions.list para obtener todos
StudentSubmission recursos 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 o la dirección de correo electrónico únicos, como se representa en el
Student recurso. El usuario actual también puede hacer referencia a su propio ID con la
"me" abreviatura.
También es posible recuperar las tareas enviadas por 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 tenga el usuario solicitante en el curso. Si el usuario es profesor o administrador de dominio, usa el siguiente alcance:
https://www.googleapis.com/auth/classroom.coursework.students.readonlyhttps://www.googleapis.com/auth/classroom.coursework.students
Si el usuario es estudiante, usa el siguiente alcance:
https://www.googleapis.com/auth/classroom.coursework.me.readonlyhttps://www.googleapis.com/auth/classroom.coursework.me
Tener permiso para recuperar un StudentSubmission no implica permisos para acceder a los archivos adjuntos ni a los metadatos de los archivos adjuntos. En la práctica, esto significa que un administrador no puede ver el título de un archivo de Drive adjunto si no es miembro del curso.
Agrega archivos adjuntos a una respuesta del estudiante
Puedes adjuntar vínculos a una tarea enviada por 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 archivo adjunto Link se define por el url de destino; 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.
El StudentSubmission solo puede ser modificado por un profesor del curso o por el estudiante que lo posee. Solo puedes adjuntar Materials si el
CourseWorkType del 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 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