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 a criar atividades usando os endpoints da API CourseWork. Implemente essa jornada para permitir que os usuários criem anexos de complementos no seu site ou aplicativo.

Fluxo de trabalho

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

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

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

Verificar se um usuário pode criar anexos de complementos

É possível criar anexos de complementos em nome de um usuário qualificado. Um usuário qualificado é um professor no curso em que você está tentando criar atividades do Material do curso e 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 anexos de complementos. Para isso, envie uma solicitação ao endpoint userProfiles.checkUserCapability com o parâmetro de recurso CREATE_ADD_ON_ATTACHMENT. Inspecione o campo booleano allowed na resposta. Um valor true indica que o usuário está qualificado para criar anexos de complementos.

Python

eligibility_response = (
  classroom_service.userProfiles()
  .checkUserCapability(
    userId="me",
    capability="CREATE_ADD_ON_ATTACHMENT",
    # The previewVersion is necessary while the method is available in the
    # Workspace Developer Preview Program.
    previewVersion="V1_20240930_PREVIEW",
  ).execute()
)
is_create_attachment_eligible = (
  eligibility_response.get('allowed')
)
print('User eligibility for add-on attachment creation: '
      f'{is_create_attachment_eligible}.')

Encaminhar o usuário com base na qualificação

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

Usuário inelegível

Se o usuário não puder criar anexos de complementos, crie uma atividade CourseWork com o URL do 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 em Link para abrir o conteúdo do seu site em uma nova guia.

Criar uma atividade do Google Sala de Aula com o material de link

Figura 1. Visualização do professor de uma atividade do Google Sala de Aula em rascunho com material de link.

Usuário qualificado

Faça o seguinte se o usuário puder criar anexos de complementos.

  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 card de anexo no Google Sala de Aula. Os URLs especificados na solicitação são abertos no iframe apropriado para cada visualização.