A interface do Google Sala de Aula é compatível com cinco tipos de atividades: Atividades,
Atividades com teste, perguntas de resposta curta, perguntas de múltipla escolha e
Materiais. Atualmente, a API Classroom é compatível com três desses tipos, que
são conhecidos como CourseWorkType
na API: Atividades, Resposta curta
e de múltipla escolha.
Para acessar essa funcionalidade, use o Recurso do CourseWork, que representa uma tarefa ou pergunta que foi atribuída aos alunos em um curso específico, incluindo quaisquer materiais e detalhes adicionais, como devido ou da pontuação máxima.
Além do recurso CourseWork, você pode gerenciar as tarefas concluídas
com o recurso StudentSubmission
. As seções a seguir descrevem esses
com mais detalhes.
Criar atividades
As atividades só podem ser criadas em nome dos professores do curso e
tentar criar tarefas em um curso em nome de um aluno resultará
em um erro PERMISSION_DENIED
403. Da mesma forma, os administradores de domínio não podem criar
atividades de cursos que não ensinam e tentar fazer isso pela API
também vai resultar em um erro PERMISSION_DENIED
403.
Ao criar atividades usando o método courses.courseWork.create
, você
É possível anexar links como materials
, conforme mostrado no exemplo de código abaixo:
Java
Python
O resultado inclui um identificador atribuído pelo servidor que pode ser usado para a atribuição em outras solicitações da API.
Para incluir materiais vinculados em uma atividade criada com a API Classroom, usar um recurso Link, especificando o URL de destino. O Google Sala de Aula busca automaticamente o título e a imagem em miniatura. A Classroom API também oferece suporte nativo a materiais do Google Drive e do YouTube, que podem incluídos em um recurso do DriveFile ou Recurso do YouTubeVideo em um formato de um jeito fácil.
Para especificar um prazo, defina os campos dueDate
e dueTime
como o
hora UTC correspondente. A data de conclusão precisa estar no futuro.
Recuperar atividades e perguntas
É possível recuperar atividades e perguntas de estudantes e professores da correspondente ou por um administrador do domínio. Para recuperar um determinado para uma atividade ou pergunta, use courses.courseWork.get. Para recuperar todos atribuições ou perguntas (opcionalmente correspondendo a alguns critérios), use courses.courseWork.list.
O escopo necessário depende do papel que o usuário solicitante tem na neste curso. Se o usuário for um aluno, use um dos seguintes escopos:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
Se o usuário for um professor ou administrador de domínio, use uma das seguintes opções escopos:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Ter permissão para recuperar uma atividade ou pergunta não implica permissões para acessar materiais ou metadados do material. Na prática, isso significa que um administrador pode não ver o título de um arquivo do Google Drive anexado que não são membros do curso. Se você quiser permitir que os administradores acessem os recursos consulte a documentação em todo o domínio delegação guia.
Gerenciar as respostas dos estudantes
Uma StudentSubmission
recurso representa o trabalho realizado e a nota de um estudante para uma tarefa ou
pergunta. Uma StudentSubmission
é criado implicitamente para cada aluno quando uma nova pergunta ou
atribuição é criada.
As seções a seguir explicam ações comuns que gerenciam as respostas dos estudantes.
Recuperar respostas dos estudantes
Os estudantes podem recuperar os próprios envios, os professores podem recuperar os arquivos enviados
para todos os alunos em seus cursos, e os administradores de domínio podem recuperar todos
envios para todos os alunos no domínio. O envio de cada estudante é
recebeu um identificador; Se você souber o identificador, use
courses.courseWork.studentSubmissions.get
para recuperá-la.
Use o método courses.courseWork.studentSubmissions.list
para receber
StudentSubmission
recursos que correspondem a alguns critérios, conforme mostrado nas
exemplo a seguir:
Java
Python
Para recuperar os recursos do StudentSubmission
que pertencem a um estudante específico, faça o seguinte:
especificando o parâmetro userId
, conforme mostrado no exemplo a seguir:
Java
Python
Os estudantes são identificados pelo ID exclusivo ou endereço de e-mail do usuário, conforme
retornados pelo SDK Admin do Google. O usuário atual também pode consultar as próprias
usando a abreviação "me"
.
Também é possível receber os envios dos alunos para todas as tarefas de uma
neste curso. Para fazer isso, use o "-"
literal como courseWorkId
, conforme mostrado nas
exemplo a seguir:
Java
service.courses().courseWork().studentSubmissions()
.list(courseId, "-")
.set("userId", userId)
.execute();
Python
service.courses().courseWork().studentSubmissions().list(
courseId=<course ID or alias>,
courseWorkId='-',
userId=<user ID>).execute()
O escopo necessário depende do papel que o usuário solicitante tem na neste curso. Use o escopo a seguir se o usuário for um professor ou um domínio administrador:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Use o escopo a seguir se o usuário for um estudante:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
Ter permissão para recuperar o arquivo enviado por um estudante não significa permissões para acessar anexos ou metadados de anexos. Na prática, significa que um administrador pode não ver o título de um arquivo do Google Drive anexado se não fazem parte do curso. Se você quiser permitir que os administradores acessem aos arquivos do usuário, consulte a delegação em todo o domínio.
Adicionar anexos à resposta do estudante
Você pode anexar links para o envio de um estudante anexando Link
,
DriveFile
ou YouTubeVideo
. Isso é feito com
courses.courseWork.studentSubmissions.modifyAttachments
, conforme mostrado no
exemplo a seguir:
Java
Python
Um anexo de link é definido pelo URL de destino. o Google Sala de Aula vai usar buscar o título e a imagem da miniatura. Saiba mais sobre os outros materiais em as respectivas páginas de referência.
O StudentSubmission
só pode ser modificado por um professor do curso ou por
ao aluno proprietário. Você só pode anexar Materials
se o
CourseWorkType
do envio do estudante é ASSIGNMENT
.
O escopo necessário depende do papel que o usuário solicitante tem na neste curso. Use o escopo a seguir se o usuário for um professor:
https://www.googleapis.com/auth/classroom.coursework.students
Use o escopo a seguir se o usuário for um estudante:
https://www.googleapis.com/auth/classroom.coursework.me
Gerenciar o estado da resposta do estudante
É possível que o envio, a entrega ou a devolução de uma resposta do estudante seja cancelada. O campo de estado
em StudentSubmission
indica o estado atual. Para mudar o estado, chame
um dos seguintes métodos:
courses.courseWork.studentSubmissions.turnIn
courses.courseWork.studentSubmissions.return
courses.courseWork.studentSubmissions.reclaim
Todos esses métodos precisam de um corpo vazio. Exemplo:
Java
Python
service.courses().courseWork().studentSubmission().turnIn(
courseId=<course ID or alias>,
courseWorkId=<courseWork ID>,
id=<studentSubmission ID>,
body={}).execute()
Somente o aluno proprietário de uma StudentSubmission
pode entregá-la ou recuperá-la.
Somente uma atividade entregue pode ser reivindicada. Os professores do curso só podem devolver
StudentSubmission
que está no estado entregue.
Atribuir nota às respostas dos estudantes
O recurso StudentSubmission
tem dois campos para armazenar notas:
assignedGrade
, que é a nota informada aos estudantes, e draftGrade
,
que é uma nota provisória visível apenas para os professores. Esses campos são atualizados
usando courses.courseWork.studentSubmissions.patch
com uma máscara de campo
contendo os campos apropriados, conforme mostrado no exemplo a seguir.
Java
Python
studentSubmission = {
'assignedGrade': 99,
'draftGrade': 80
}
service.courses().courseWork().studentSubmissions().patch(
courseId=<course ID or alias>,
courseWorkId=<courseWork ID>,
id=<studentSubmission ID>,
updateMask='assignedGrade,draftGrade',
body=studentSubmission).execute()
Na interface do Google Sala de Aula, os professores só podem atribuir uma nota quando salvam uma nota temporária. A nota atribuída pode ser devolvida para um aluno. Os aplicativos precisam emular esse comportamento. Seu aplicativo pode avaliar a tarefa de um estudante de duas formas:
Atribua apenas o
draftGrade
. Isso é útil, por exemplo, para permitir que o professor revisar manualmente as notas antes de finalizá-las. Os alunos não podem ver as notas temporárias.Atribua
draftGrade
eassignedGrade
para avaliar totalmente uma atividade.
Listar notas atribuídas
É possível listar todas as notas de um item específico do curso explorando a
Objeto de resposta do método courses.courseWork.studentSubmissions.list
:
Java
Python
response = coursework.studentSubmissions().list(
courseId=course_id,
courseWorkId=coursework_id,
pageSize=10).execute()
submissions.extend(response.get('studentSubmissions', []))
if not submissions:
print('No student submissions found.')
print('Student Submissions:')
for submission in submissions:
print(f"Submitted at:"
f"{(submission.get('userId'), submission.get('assignedGrade'))}")