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:
- Um usuário professor abre seu site ou app. Eles selecionam um conteúdo para atribuir aos alunos.
- Verifique se o usuário consegue criar anexos de complementos.
- 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.
- Se o usuário conseguir criar anexos de complementos, faça o seguinte:
- Crie uma atividade.
- Crie um anexo de complemento que vincule ao conteúdo selecionado. associá-lo à 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 qualificado o usuário é 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
.
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.
- Crie uma atividade
CourseWork
sem anexos. - Crie um anexo de complementos.
- Defina o
itemId
daAddOnAttachment
como aid
do arquivo recém-criado. atribuição. - Forneça URLs para o conteúdo selecionado pelo usuário para cada visualização que você apoia.
- 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 especificado na solicitação aberta na região Iframe para cada visualização.