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 no seu site ou aplicativo.
Fluxo de trabalho
De modo geral, a jornada de criação de anexos segue esta sequência:
- Um professor abre seu site ou app e seleciona um conteúdo para atribuir aos alunos.
- Verifique se o usuário pode criar anexos de complementos.
- Se o usuário não puder criar anexos de complementos, crie uma atividade do CourseWork com o URL do conteúdo selecionado como um material de link.
- Se o usuário puder criar anexos de complementos, faça o seguinte:
- Crie uma atividade.
- Crie um anexo de complemento que se vincule ao conteúdo selecionado e associe-o à nova atividade.
- 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 usuário qualificado é um professor no curso em que você está tentando criar atividades do CourseWork e tem a 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 userProfiles.checkUserCapability endpoint
com o CREATE_ADD_ON_ATTACHMENT parâmetro de capacidade. 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}.')
Direcionar 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 puder criar anexos de complementos, crie uma nova CourseWork
atividade 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 no Link para abrir o conteúdo no seu site em uma nova guia.

Figura 1. Visualização do professor de uma atividade do CourseWork com material de link.
Usuário qualificado
Faça o seguinte se o usuário puder criar anexos de complementos.
- Crie uma nova atividade
CourseWorksem anexos. - Crie um anexo de complemento.
- Defina o
AddOnAttachment'sitemIdcomo oidda atividade recém-criada. - Forneça URLs para o conteúdo selecionado pelo usuário para cada visualização que você oferece suporte.
- Defina o
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.