Criar anexos fora do Google Sala de Aula

Este guia aborda a criação de anexos de complementos no seu site ou aplicativo. As interações são semelhantes à criação de atividades usando os endpoints da API CourseWork. Implemente essa jornada para permitir que os usuários criem anexos de complementos do seu site ou aplicativo.

Fluxo de trabalho

De modo geral, a jornada de criação de anexos segue esta sequência:

  1. Um professor abre o site ou app e seleciona um conteúdo para atribuir aos estudantes.
  2. Verifique se o usuário consegue criar anexos de complementos.
  3. Se o usuário não conseguir criar anexos de complementos, crie uma atividade do CourseWork com o URL do conteúdo selecionado como um Link Material.
  4. Se o usuário puder criar anexos de complementos, faça o seguinte:
    1. Crie uma atividade.
    2. Crie um anexo de complemento com um link para o conteúdo selecionado e associe à nova atividade.
    3. Informe ao professor que a atividade foi criada.

Cada ação é descrita nas seções a seguir.

Verificar se um usuário pode criar anexos de complementos

Você pode criar anexos de complementos em nome de um usuário qualificado. Um usuário qualificado é aquele que é professor do curso em que você está tentando criar atividades do CourseWork e que tem uma licença da edição Teaching & Learning ou Education Plus do Google Workspace for Education atribuída a ele.

Comece determinando se o usuário pode criar complementos em uma determinada Course. Emita uma solicitação para o endpoint courses.checkAddOnCreationEligibility, incluindo o ID do 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}.')

Se o usuário estiver qualificado, a resposta vai conter o valor booleano isCreateAttachmentEligible definido como true. Se o usuário não estiver qualificado, a resposta não vai retornar o booleano isCreateAttachmentEligible.

Encaminhe o usuário com base na qualificação dele

A qualificação determina se você pode criar anexos de complementos para um usuário.

Usuário não qualificado

Se o usuário não conseguir criar anexos de complementos, crie uma nova atribuição CourseWork com o URL de conteúdo selecionado pelo usuário como um 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")}'
  )

A resposta contém uma atividade no curso solicitado com o conteúdo anexado. Os usuários podem clicar no Link para abrir o conteúdo no seu site em uma nova guia.

Redigir uma atividade do curso com o Link Material

Figura 1. Visualização de um rascunho de atividade do curso com o Link Material.

Usuário qualificado

Se o usuário conseguir criar anexos de complementos, faça o seguinte:

  1. Crie uma atividade CourseWork sem anexos.
  2. Crie um anexo de complemento.

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")}'
  )

O complemento aparece como um cartão de anexo no Google Sala de Aula. Os URLs especificados na solicitação são abertos no iframe adequado para cada visualização.