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 tarefas usando a API CourseWork de endpoints. Implemente esta 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 usuário professor abre seu site ou app. Eles selecionam um conteúdo para atribuir aos alunos.
  2. Verifique se o usuário consegue criar anexos de complementos.
  3. Se o usuário não conseguir criar anexos de complementos, crie um curso atribuição com o URL ao conteúdo selecionado como um Material de link.
  4. Se o usuário conseguir criar anexos de complementos, faça o seguinte:
    1. Crie uma atividade.
    2. Crie um anexo de complemento que vincule ao conteúdo selecionado. associá-lo à nova atividade.
  5. 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

É possível criar anexos de complementos em nome de um usuário qualificado. Um qualificado user é um professor do curso que você está tentando criar tarefas do curso e a seção "Teaching &" Learning ou Education Plus licença da edição Google Workspace for Education atribuída a eles.

Comece determinando se o usuário pode criar complementos em um determinado Course. Envie 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 conterá o booleano O valor de isCreateAttachmentEligible foi definido como true. Se o usuário não estiver qualificado, a resposta não vai retornar o booleano isCreateAttachmentEligible.

Direcione o usuário com base na elegibilidade 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 um novo 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 tarefa no curso solicitado com o conteúdo anexado. Os usuários podem clicar no Link para abrir o conteúdo no site em uma nova .

Criar uma atividade do curso com o link Material

Figura 1. Visualização de um rascunho de atividade do CourseWork com o link Material para os professores.

Usuário qualificado

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

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

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 especificado na solicitação aberta na região Iframe para cada visualização.