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:
- Um professor abre seu site ou app e seleciona um conteúdo para atribuir aos estudantes.
- 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 Google Sala de Aula 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 vincule ao conteúdo selecionado e associe-o à nova atividade.
- 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.
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.
- Crie uma atividade
CourseWork
sem anexos. - Crie um anexo de complemento.
- Defina o
itemId
doAddOnAttachment
como oid
da atribuição recém-criada. - Forneça URLs para o conteúdo selecionado pelo usuário em cada visualização compatível.
- 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.