Cómo interactuar con archivos adjuntos

En esta página, se analizan los detalles de implementación para crear un adjunto, las acciones recomendadas cuando los usuarios abren adjuntos y cómo trabajar con las entregas de los estudiantes. Ten en cuenta que es posible que debas proporcionar parámetros relacionados con los adjuntos cuando realices estas solicitudes.

Crea un adjunto

Para crear un adjunto, envía una solicitud CREATE al extremo courses.*.addOnAttachments.create adecuado. Tu solicitud debe incluir una instancia de AddOnAttachment en el cuerpo de la solicitud.

Los siguientes campos son obligatorios cuando se crea un adjunto:

  • title: Es el nombre de cadena del adjunto.
  • teacherViewUri: Es el URI de la vista del profesor del adjunto.
  • studentViewUri: Es el URI de la vista del estudiante del adjunto.
  • studentWorkReviewUri: Es el URI para que el profesor vea el trabajo del estudiante en el adjunto. Este campo solo es obligatorio para los adjuntos de tipo actividad.

Es posible que desees incluir algunos de los siguientes campos opcionales:

  • dueDate y dueTime si especificas cuándo vence el adjunto.
  • maxPoints: Es la calificación máxima del adjunto. Debe ser un valor distinto de cero si deseas admitir la devolución de calificaciones. Se aplica solo a los adjuntos de tipo actividad.

Consulta la referencia del recurso AddOnAttachment para obtener más detalles sobre estos campos.

Valida las credenciales y el rol del usuario

El iframe de la vista del estudiante, el iframe de revisión del trabajo del estudiante y el iframe de la vista del profesor están diseñados para presentar contenido al usuario en lugar de modificar una tarea de Classroom. Considera hacer lo siguiente cuando se abra una de estas vistas:

  • Obtén las credenciales de OAuth del usuario.
  • Realiza una solicitud courseWork.getAddOnContext, courseWorkMaterials.getAddOnContext o announcements.getAddOnContext según el itemType para validar el rol del usuario.
  • Inspecciona la respuesta para ver si están presentes TeacherContext o StudentContext. Solo se puede mostrar uno, que corresponde al rol del usuario en el curso.
  • Si el usuario actual es un estudiante y el itemType es courseWork, registra el submissionId de la respuesta con el trabajo del estudiante. Los submissionIds coinciden en los iframes de complementos y son necesarios para devolver calificaciones y mostrar el trabajo de los estudiantes a los profesores en la herramienta de calificación.
  • Si el complemento ya conoce el attachmentId, muestra la IU del adjunto adecuada.
  • De lo contrario, este adjunto debe haberse copiado de otro elemento o curso de la transmisión. Consulta la guía Cómo controlar el contenido copiado para obtener recomendaciones sobre esta situación.

Detalles de la entrega del estudiante

Un flujo de trabajo de entrega típico sigue estos pasos:

  1. Un estudiante inicia el studentViewUri para completar una actividad.
  2. El complemento recupera un submissionId del método getAddOnContext con las credenciales del estudiante.
  3. El desarrollador del complemento almacena el submissionId y el attachmentId como el identificador único del trabajo del estudiante. En caso de que un profesor copie una tarea en Classroom, puedes usar la clave compuesta de estos dos parámetros para mostrar un adjunto nuevo en la tarea copiada. Consulta nuestra página sobre el contenido copiado para obtener más detalles.
  4. Un profesor interesado en revisar el trabajo de los estudiantes inicia el studentWorkReviewUri. La solicitud incluye los siguientes parámetros de consulta: courseId, itemId, itemType, attachmentId y submissionId.
  5. El desarrollador del complemento usa estos cuatro IDs para recuperar el trabajo del estudiante. Usa el courses.courseWork.addOnAttachments.studentSubmissions extremo para recuperar o modificar información sobre la entrega de un estudiante.

Detecta el estado de la entrega

Envía una solicitud GET al courses.courseWork.addOnAttachments.studentSubmissions extremo para obtener detalles sobre un submissionId específico. Recibirás un objeto AddOnAttachmentStudentSubmission, que contiene la calificación de la entrega (pointsEarned) y el estado actual (postSubmissionState). El estado de la entrega puede ser uno de los siguientes valores:

  • NEW, si el estudiante nunca accedió a la entrega.
  • CREATED, si el estudiante creó una entrega, pero aún no la envió.
  • TURNED_IN, si el estudiante envió su trabajo al profesor.
  • RETURNED, si el profesor le devolvió la entrega al estudiante.
  • RECLAIMED_BY_STUDENT, si el estudiante "anuló el envío" de su trabajo.

Usa este extremo para detectar el estado del trabajo del estudiante en tu complemento. Luego, puedes ajustar las vistas o las opciones que se proporcionan al estudiante según el estado que se muestra. Esto podría incluir funciones como las siguientes:

  • Mostrar el estado de entrega de las tareas en tu complemento. Esto puede ayudar a los estudiantes a evitar posibles confusiones y garantizar que no dejen de entregar una tarea por error.
  • Restringir los privilegios de edición de entregas. Si la tarea tiene el estado CREATED o RECLAIMED_BY_STUDENT, es posible que el estudiante pueda editar su entrega. Si la tarea tiene el estado TURNED_IN o RETURNED, es posible que el estudiante no pueda editar su entrega.

Calificaciones y varios adjuntos

Solo se puede usar un adjunto de complemento para establecer la calificación de una sola tarea. Si un profesor crea más de un adjunto de tipo actividad que proporciona un valor maxPoints, solo el primero de esos adjuntos puede establecer la calificación de la tarea. Deja el valor maxPoints sin configurar o establécelo en cero para inhabilitar la devolución de calificaciones de un adjunto.

Establece la calificación de una entrega

Para modificar la entrega de un estudiante, envía una solicitud PATCH al extremo courses.courseWork.addOnAttachments.studentSubmissions. El cuerpo de la solicitud debe incluir una instancia de AddOnAttachmentStudentSubmission con los valores modificados. Establece el campo pointsEarned para modificar la calificación de una entrega. El valor que se pasa en pointsEarned se convierte en una calificación preliminar que el profesor puede ver en la IU de Classroom. Los profesores pueden modificar la calificación preliminar antes de devolver la tarea a los estudiantes. Consulta Descripción general de la calificación en la IU de Classroom para obtener detalles sobre cómo se presentan las calificaciones a los profesores.

Ten en cuenta que solo puedes establecer la calificación con pointsEarned si se cumplen las siguientes condiciones:

  • El adjunto debe tener un valor maxPoints positivo.
  • El complemento debe haber sido el creador original del adjunto.

Ten en cuenta también que puedes modificar el valor maxPoints de un AddOnAttachment ya creado si envías una solicitud PATCH al extremo addOnAttachments.

Cuándo establecer una calificación

Tienes algunas opciones sobre cuándo se devuelve una calificación a Google Classroom. La distinción fundamental es si eliges almacenar las credenciales del profesor, ya que solo él puede modificar una calificación.

Hay dos momentos de complementos en los que puedes pasar una calificación a Google Classroom: cuando el estudiante completa su trabajo o cuando el profesor abre el trabajo del estudiante en el iframe de revisión del trabajo del estudiante.

Si deseas establecer calificaciones cuando el estudiante completa el trabajo, debes almacenar las credenciales sin conexión de un profesor y, luego, recuperarlas y usarlas para modificar la calificación cuando el estudiante complete el trabajo. Este método proporciona algunos beneficios potenciales:

  • Proporciona actualizaciones de calificaciones sin problemas. Los profesores no necesitan realizar ninguna acción especial para que las calificaciones se propaguen en la IU de Classroom.
  • Proporciona estadísticas en tiempo real sobre el progreso de una clase a través de una tarea. Si establecen calificaciones a medida que los estudiantes completan los adjuntos, los profesores pueden comprender el nivel de comprensión de sus estudiantes sin abrir cada entrega.

Ten en cuenta que este enfoque también permite un enfoque asíncrono para la sincronización de calificaciones. Puedes sondear periódicamente el extremo AddOnAttachmentStudentSubmission para detectar cuándo un estudiante envió su trabajo. Cuando se haya enviado, establece la calificación de la entrega con las credenciales almacenadas.

Si no deseas cargar las credenciales del profesor durante una sesión del estudiante, puedes usar las credenciales del profesor activo cuando cargue la entrega del estudiante en el iframe de revisión del trabajo del estudiante. Sin embargo, es posible que esto no proporcione una experiencia del usuario especialmente fluida, ya que las calificaciones en la IU de Classroom no se actualizan en tiempo real y los profesores deberían abrir el iframe de revisión del trabajo del estudiante de cada entrega.

Detecta cambios en las calificaciones de las tareas

Es posible que los profesores editen la configuración de calificación en Classroom después de que se haya creado una tarea. Estas ediciones pueden incluir lo siguiente:

  • Cambiar el valor de los puntos asignados
  • Cambiar el valor maxPoints de una tarea
  • Cambiar si la tarea debe calificarse

Para ver la configuración de calificación actual de una tarea, te recomendamos que envíes una GET solicitud al courses.courseWork extremo. La respuesta incluye el valor maxPoints actual. Una tarea sin calificar tiene un valor maxPoints nulo o cero.

Si devolviste una calificación a Classroom, usa el extremo courses.courseWork.addOnAttachments.studentSubmissions para recuperar o modificar la calificación de un adjunto de complemento. El valor de la calificación se establece con el campo pointsEarned. Considera verificar y, si es necesario, actualizar este valor si tu producto permite que los profesores editen la puntuación de un estudiante para una actividad en particular.