Crea archivos adjuntos fuera de Google Classroom

En esta guía, se explica cómo crear archivos adjuntos de complementos en tu sitio web o aplicación. Las interacciones son similares a crear tareas con la API de CourseWork extremos. Implementa este proceso para permitir que los usuarios creen archivos adjuntos de complementos. de tu sitio web o aplicación.

Flujo de trabajo

En términos generales, el proceso de creación de adjuntos sigue esta secuencia:

  1. Un usuario profesor abre tu sitio web o app. Seleccionan un contenido para asignar a los estudiantes.
  2. Verifica que el usuario pueda crear archivos adjuntos de complementos.
  3. Si el usuario no puede crear archivos adjuntos de complementos, crea un CourseWork. con la URL del contenido seleccionado como Material del vínculo.
  4. Si el usuario puede crear archivos adjuntos de complementos, haz lo siguiente:
    1. Crea una tarea.
    2. Crear un archivo adjunto de complemento que se vincule al contenido seleccionado y y asociarlo con la tarea nueva.
  5. Infórmale al profesor que la tarea se creó correctamente.

Cada acción se describe en las siguientes secciones.

Verifica si un usuario puede crear archivos adjuntos de complementos

Puedes crear archivos adjuntos de complementos en nombre de un usuario que cumpla con los requisitos. Un usuario es un usuario que es un profesor del curso que intentas crear CourseWork de y cuenta con el curso Teaching & Learning o Education Plus Se les asignó la licencia de la edición Google Workspace for Education.

Primero, determina si el usuario puede crear complementos en un Course determinado. Emite una solicitud al extremo courses.checkAddOnCreationEligibility. incluido el ID del curso.

Python

eligibility_response = (
  classroom_service.courses()
  .checkAddOnCreationEligibility(courseId=course_id)
  .execute()
)
is_create_attachment_eligible = (
  eligibility_response.get('isCreateAttachmentEligible')
)
print(f'User eligibility for course {eligibility_response.get("courseId")}'
      f': {is_create_attachment_eligible}.')

Si el usuario reúne los requisitos, la respuesta contiene el valor Se estableció el valor de isCreateAttachmentEligible en true. Si el usuario no reúne los requisitos, la respuesta no mostrará el valor booleano isCreateAttachmentEligible.

Redireccionar al usuario según su elegibilidad

La elegibilidad determina si puede crear archivos adjuntos de complementos para un usuario.

Usuario no apto

Si el usuario no puede crear archivos adjuntos de complementos, crea un nuevo CourseWork. asignación con la URL del contenido que seleccionó el usuario como Link.

Python

if not is_create_attachment_eligible:
  coursework = {
    'title': 'My CourseWork Assignment with Link Material',
    'description': 'Created using the Classroom CourseWork API.',
    'workType': 'ASSIGNMENT',
    'state': 'DRAFT',  # Set to 'PUBLISHED' to assign to students.
    'maxPoints': 100,
    'materials': [
      {'link': {'url': my_content_url}}
    ]
  }

  assignment = (
    service.courses()
    .courseWork()
    .create(courseId=course_id, body=coursework)
    .execute()
  )

  print(
    f'Link Material assignment created with ID: {assignment.get("id")}'
  )

La respuesta contiene una tarea del curso solicitado con el contenido. que se adjuntan. Los usuarios pueden hacer clic en la Link para abrir el contenido de tu sitio en una nueva .

Borrador de la tarea del trabajo del curso con Material del vínculo

Figura 1: Vista del profesor de un borrador de una tarea de CourseWork con Link Material.

Usuario apto

Haz lo siguiente si el usuario puede crear archivos adjuntos de complementos.

  1. Crea una nueva tarea de CourseWork sin archivos adjuntos.
  2. Crea un archivo adjunto del complemento.
    • Establece el itemId de AddOnAttachment en el id del elemento recién creado. asignación.
    • Asegúrate de proporcionar URLs al contenido seleccionado por el usuario para cada vista. que admites.

Python

if is_create_attachment_eligible:
  coursework = {
    'title': 'My CourseWork Assignment with Add-on Attachment',
    'description': 'Created using the Classroom CourseWork API.',
    'workType': 'ASSIGNMENT',
    'state': 'DRAFT',  # Set to 'PUBLISHED' to assign to students.
    'maxPoints': 100,
  }

  assignment = (
    classroom_service.courses()
    .courseWork()
    .create(courseId=course_id, body=coursework)
    .execute()
  )

  print(
    f'Empty assignment created with ID: {assignment.get("id")}'
  )

  attachment = {
    'teacherViewUri': {'uri': teacher_view_url},
    'studentViewUri': {'uri': student_view_url},
    'studentWorkReviewUri': {'uri': grade_student_work_url},
    'title': f'Test Attachment {test_label}',
  }

  add_on_attachment = (
    service.courses()
    .courseWork()
    .addOnAttachments()
    .create(
      courseId=course_id,
      itemId=assignment.get("id"),  # ID of the new assignment.
      body=attachment,
    )
    .execute()
  )

  print(
    f'Add-on attachment created with ID: {add_on_attachment.get("id")}'
  )

El complemento aparece como una tarjeta de archivo adjunto en Classroom. Las URLs especificadas en la solicitud, se abre en el iframe para cada vista.