L'interfaccia utente di Classroom supporta cinque tipi di lavori del corso: compiti, compiti con quiz, domande a risposta breve, domande a scelta multipla e materiali. Al momento l'API Classroom supporta tre di questi tipi, noti come CourseWorkType
per l'API: Compiti, Domande a risposta breve e Domande a scelta multipla.
Per accedere a questa funzionalità, puoi utilizzare la risorsa Corso, che rappresenta un compito o una domanda assegnata agli studenti di un determinato corso, inclusi eventuali materiali e dettagli aggiuntivi, come la data di consegna o il voto massimo.
Oltre alla risorsa CourseWork, puoi gestire i compiti completati con la risorsa StudentSubmission
. Le sezioni seguenti descrivono queste opzioni in modo più dettagliato.
Creare compiti
I compiti possono essere creati solo per conto degli insegnanti del corso e tentare di creare compiti in un corso per conto di uno studente comporterà un errore 403 PERMISSION_DENIED
. Analogamente, gli amministratori di dominio non possono creare compiti per i corsi che non insegnano e il tentativo di farlo tramite l'API comporterà anche un errore 403 PERMISSION_DENIED
.
Quando crei i compiti utilizzando il metodo courses.courseWork.create
, puoi allegare i link come materials
, come mostrato nel codice di esempio riportato di seguito:
Java
Python
Il risultato include un identificatore assegnato dal server che può essere utilizzato per fare riferimento all'assegnazione in altre richieste API.
Per includere i materiali collegati in un compito creato tramite l'API Classroom, utilizza una risorsa di collegamento, specificando l'URL di destinazione. Classroom recupera automaticamente il titolo e l'immagine in miniatura. L'API Classroom supporta anche in modo nativo i materiali di Google Drive e YouTube, che possono essere inclusi con una risorsa DriveFile o una risorsa YouTubeVideo in modo simile.
Per specificare una data di consegna, imposta i campi dueDate
e dueTime
sull'ora UTC corrispondente. La data di scadenza deve essere futura.
Recuperare compiti e domande
Puoi recuperare i compiti e le domande per gli studenti e gli insegnanti del corso corrispondente o da un amministratore di dominio. Per recuperare un compito o una domanda specifici, utilizza courses.courseWork.get. Per recuperare tutti i compiti o le domande (eventualmente corrispondenti ad alcuni criteri), utilizza courses.courseWork.list.
L'ambito richiesto dipende dal ruolo dell'utente che effettua la richiesta nel corso. Se l'utente è uno studente, utilizza uno dei seguenti ambiti:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
Se l'utente è un insegnante o un amministratore di dominio, utilizza uno dei seguenti ambiti:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Avere l'autorizzazione per recuperare un compito o una domanda non implica necessariamente l'autorizzazione per accedere ai materiali o ai metadati dei materiali. In pratica, questo significa che un amministratore potrebbe non vedere il titolo di un file di Drive allegato se non è un membro del corso. Se vuoi consentire agli amministratori di accedere ai file degli utenti, consulta la guida alla delega a livello di dominio.
Gestire le risposte degli studenti
Una risorsa StudentSubmission
rappresenta il lavoro svolto e il voto di uno studente per un compito o una domanda. Quando viene creata una nuova domanda o un nuovo compito, viene creata implicitamente una risorsa StudentSubmission
per ogni studente.
Le sezioni seguenti descrivono le azioni comuni per gestire le risposte degli studenti.
Recuperare le risposte degli studenti
Gli studenti possono recuperare i propri contenuti inviati, gli insegnanti possono recuperare i contenuti inviati per tutti gli studenti dei loro corsi e gli amministratori di dominio possono recuperare tutti i contenuti inviati per tutti gli studenti del loro dominio. A ogni compito inviato dagli studenti viene assegnato un identificatore. Se lo conosci, utilizza courses.courseWork.studentSubmissions.get
per recuperarlo.
Utilizza il metodo courses.courseWork.studentSubmissions.list
per recuperare le risorse StudentSubmission
che soddisfano alcuni criteri, come mostrato nell'esempio seguente:
Java
Python
Recupera le risorse StudentSubmission
appartenenti a uno studente specifico specificando il parametro userId
, come mostrato nell'esempio seguente:
Java
Python
Gli studenti vengono identificati dall'ID univoco o dall'indirizzo email dell'utente, come riportato dall'SDK Admin di Google. L'utente corrente può anche fare riferimento al proprio ID utilizzando la scorciatoia "me"
.
È anche possibile ricevere i contenuti inviati dagli studenti per tutti i compiti all'interno di un
corso. A tale scopo, utilizza il valore letterale "-"
come courseWorkId
, come mostrato nell'esempio seguente:
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()
L'ambito richiesto dipende dal ruolo dell'utente che effettua la richiesta nel corso. Utilizza l'ambito seguente se l'utente è un insegnante o un amministratore di dominio:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Utilizza il seguente ambito se l'utente è uno studente:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
Avere l'autorizzazione per recuperare un compito inviato dallo studente non implica necessariamente l'autorizzazione per accedere agli allegati o ai metadati degli allegati. In pratica, questo significa che un amministratore potrebbe non vedere il titolo di un file di Drive allegato se non è un membro del corso. Se vuoi consentire agli amministratori di accedere ai file degli utenti, consulta la guida sulla delega a livello di dominio.
Aggiungere allegati a una risposta dello studente
Puoi allegare link a un lavoro inviato dallo studente allegando una risorsa Link
,
DriveFile
o YouTubeVideo
. Questa operazione viene eseguita con
courses.courseWork.studentSubmissions.modifyAttachments
, come mostrato nell'esempio seguente:
Java
Python
Un allegato link è definito dall'URL di destinazione. Classroom recupererà automaticamente il titolo e l'immagine in miniatura. Puoi scoprire di più sugli altri materiali nelle rispettive pagine di riferimento.
Il StudentSubmission
può essere modificato solo dall'insegnante del corso o dall'autore dello stesso. Puoi allegare Materials
solo se il valore CourseWorkType
dell'invio dello studente è ASSIGNMENT
.
L'ambito richiesto dipende dal ruolo dell'utente che effettua la richiesta nel corso. Utilizza il seguente ambito se l'utente è un insegnante:
https://www.googleapis.com/auth/classroom.coursework.students
Utilizza il seguente ambito se l'utente è uno studente:
https://www.googleapis.com/auth/classroom.coursework.me