Questa pagina descrive alcuni messaggi di errore, problemi e possibili azioni comuni dell'API Google Classroom per i seguenti tipi di errori:
- HTTP 400:
FAILED_PRECONDITION
- HTTP 403:
PERMISSION_DENIED
- HTTP 429:
RESOURCE_EXHAUSTED
- HTTP 500:
INTERNAL
HTTP 400: FAILED_PRECONDITION
Viene restituito un FAILED_PRECONDITION
quando l'utente tenta un'azione che
non può essere consentita, perché l'utente ha raggiunto un limite o uno stato
dell'applicazione, ad esempio CourseNotModifiable
. Per risolvere un problema FAILED_PRECONDITION
,
invita l'utente a eseguire un'azione e poi riprova. In alcuni casi, potresti utilizzare endpoint alternativi per correggere lo stato per conto dell'utente.
AttachmentNotVisible
AttachmentNotVisible
indica che uno o più allegati specificati
non sono visibili all'utente, non sono del tipo richiesto o non esistono. Ad esempio, gli elementi di Drive che non sono stati condivisi con l'utente restituiranno questo errore.
Azione possibile: Descrivi la causa dell'errore e suggerisci all'utente di ricontrollare gli identificatori, ad esempio gli ID file di Drive, che ha incluso. Inoltre, assicurati che l'utente disponga delle autorizzazioni appropriate per visualizzare l'allegato.
CannotRemoveCourseFolderOwner
CannotRemoveCourseFolderOwner
indica che il proprietario della cartella Drive del corso non può essere rimosso.
Azione possibile: Descrivi la causa dell'errore e suggerisci all'utente di trasferire la proprietà della cartella Drive del corso a un altro utente e riprovare.
CannotRemoveCourseOwner
CannotRemoveCourseOwner
indica che il proprietario del corso non può essere rimosso.
Azione possibile: Descrivi la causa dell'errore e suggerisci che il proprietario del corso potrebbe non essere rimosso. Nella maggior parte dei casi, l'utente sta tentando di rimuovere se stesso, il che non è consentito.
CannotRemoveCourseOwnerTransferIncomplete
CannotRemoveCourseOwnerTransferIncomplete
indica che il proprietario del corso non può essere rimosso perché il trasferimento della proprietà di questo corso è ancora in corso.
Azione possibile: Descrivi la causa dell'errore e suggerisci all'utente di attendere qualche istante il completamento dell'azione asincrona di trasferimento della proprietà del corso, quindi riprovare.
CannotRemoveTeacherWithNoCourseOwner
CannotRemoveTeacherWithNoCourseOwner
indica che un insegnante non può essere
rimosso da un corso senza proprietario.
Azione possibile: Descrivi la causa dell'errore e suggerisci che l'insegnante potrebbe non essere rimosso. Nella maggior parte dei casi, l'account utente del proprietario del corso è stato eliminato, causando uno stato del corso non valido.
CourseMemberLimitReached
CourseMemberLimitReached
indica che l'azione tentata supererebbe
il numero massimo consentito di membri del corso. Questo codice viene in genere restituito da
students.create()
Per ulteriori informazioni, consulta la sezione "Limiti delle dimensioni dei corsi" dell'articolo del Centro assistenza
Invitare gli studenti a un corso.
Azione possibile: Descrivi la causa dell'errore e suggerisci all'utente di rimuovere i membri del corso non necessari
CourseNotModifiable
CourseNotModifiable
indica che il corso pertinente si trova in uno stato che
non consente di modificarne le proprietà (a parte lo stato del corso
stesso).
Azione possibile:
chiedi all'utente di modificare il corso in uno
stato modificabile. Per
modificare lo stato, utilizza
courses.patch()
.
Lo stato del corso può essere modificato in una richiesta che modifica altre proprietà.
CourseTeacherLimitReached
CourseTeacherLimitReached
indica che l'azione richiesta supererebbe
il numero massimo consentito di insegnanti del corso. Questo codice viene in genere restituito
dal metodo teachers.create()
.
Per ulteriori informazioni, consulta la sezione "Limitazioni delle dimensioni del corso" dell'articolo del Centro assistenza
Aggiungere un co-insegnante a un corso.
Azione possibile:
Descrivi la causa dell'errore e suggerisci all'utente di rimuovere gli insegnanti del corso non necessari. Se applicabile alla tua app, puoi utilizzare il metodo
teachers.delete()
per gestire gli elenchi degli insegnanti per conto dell'utente.
CourseTopicLimitReached
CourseTopicLimitReached
indica che l'azione richiesta supererebbe
il numero massimo consentito di argomenti in un corso. Questo codice viene in genere restituito dal metodo courses.topics.create()
.
Azione possibile:
Descrivi la causa dell'errore e suggerisci all'utente di rimuovere gli argomenti non necessari. Se applicabile alla tua app, puoi utilizzare il metodo
courses.topics.delete()
per gestire gli argomenti per conto dell'utente.
InactiveCourseOwner
InactiveCourseOwner
indica che l'azione richiesta non è consentita
perché l'account del proprietario del corso è stato eliminato. L'amministratore del proprietario del corso deve ripristinare l'account del proprietario del corso prima di intraprendere l'azione richiesta.
Azione possibile: Descrivi la causa dell'errore e suggerisci all'amministratore di ripristinare l'account del proprietario del corso prima di riprovare l'operazione.
IneligibleOwner
IneligibleOwner
indica che l'utente non può essere aggiunto come proprietario del
corso perché non è un insegnante secondario.
Azione possibile: Descrivi la causa dell'errore. Se l'utente richiedente non è un amministratore, suggerisci di inviare prima all'utente un invito a diventare insegnante del corso prima di aggiornare il proprietario. Se l'utente richiedente è un amministratore, suggerisci di aggiungerlo prima come co-insegnante del corso.
PendingInvitationExists
PendingInvitationExists
indica che qualcuno è già stato invitato ad assumere
la proprietà del corso. Questo errore si verifica durante il trasferimento della proprietà del corso
quando un trasferimento è stato avviato in precedenza, ma non è ancora stato accettato
dal nuovo proprietario.
UserCannotOwnCourse
UserCannotOwnCourse
indica che l'utente non può essere aggiunto come proprietario del corso.
Azione possibile: descrivi la causa dell'errore e suggerisci che il corso non può essere creato con l'utente come proprietario del corso. Un utente richiedente non amministratore potrebbe visualizzare questo errore se tenta di creare un corso con un utente diverso da sé come proprietario. Un amministratore che richiede un utente potrebbe visualizzare questo errore se l'account utente specificato come proprietario non esiste o se l'utente non si trova nel suo dominio.
UserGroupsMembershipLimitReached
UserGroupsMembershipLimitReached
indica che l'utente è già membro
del numero massimo consentito di gruppi e non può iscriversi ad alcun corso. Questo codice viene
in genere restituito da
students.create()
o
teachers.create()
.
Per ulteriori informazioni, consulta la sezione "Limitazioni delle dimensioni del corso" dell'articolo del Centro assistenza
Invitare gli studenti a un corso.
Azione possibile:
Descrivi la causa dell'errore e suggerisci all'utente di abbandonare i corsi a cui non partecipa. L'utente può valutare la possibilità di creare un account aggiuntivo
se ha bisogno di partecipare a più corsi. Se applicabile alla tua app,
puoi utilizzare students.create()
o teachers.delete()
per gestire gli elenchi per conto dell'utente.
HTTP 403: PERMISSION_DENIED
Tutti i metodi dell'API Classroom possono restituire un errore PERMISSION_DENIED
(HTTP 403)
se un utente finale non soddisfa i prerequisiti per l'accesso. Il messaggio
che accompagna l'errore contiene un
messaggio di errore per
aiutarti a identificare la causa e indirizzare gli utenti a intraprendere l'azione appropriata.
Le sezioni seguenti descrivono i messaggi di errore comuni dell'API Classroom.
CannotDirectAddUser
CannotDirectAddUser
indica che un utente non può essere aggiunto direttamente al
corso. Questo codice viene visualizzato quando un amministratore di dominio tenta di aggiungere un utente a un corso e l'utente non ha un indirizzo email o non appartiene al dominio.
Azione possibile: Descrivi la causa dell'errore e suggerisci all'amministratore del dominio di verificare che l'account utente esista e si trovi nel dominio dell'amministratore del corso.
ClassroomApiDisabled
ClassroomApiDisabled
indica che l'utente richiedente non ha accesso
all'API Classroom.
Azione possibile: Indirizza l'utente alle istruzioni su come attivare l'accesso ai dati di Classroom. Consulta anche ClassroomDisabled, in quanto l'utente potrebbe utilizzare l'account sbagliato.
ClassroomDisabled
ClassroomDisabled
indica che l'utente richiedente non ha accesso a
Classroom.
Azione possibile: Indirizza l'utente alle istruzioni per attivare l'accesso a Classroom. L'utente potrebbe anche utilizzare l'account sbagliato, quindi potresti anche fornire un link all'articolo Utilizzare più account in modo che possa selezionare l'account corretto.
ExpiredAddOnToken
ExpiredAddOnToken
indica che il token del componente aggiuntivo utilizzato per effettuare chiamate all'API è scaduto.
Azione possibile: chiedi all'utente di aggiornare la pagina o di accedere di nuovo al componente aggiuntivo
in modo da poter ottenere il nuovo parametro di query addOnToken
dall'URL
della richiesta.
InvalidAddOnToken
InvalidAddOnToken
indica che il token del componente aggiuntivo passato in una richiesta non è
autorizzato a creare un allegato del componente aggiuntivo nel compito.
Azione possibile: questo errore può essere generato se l'utente accede al componente aggiuntivo con un account diverso da quello di Classroom. Chiedi all'utente di disconnettersi da tutti gli altri account nel browser o di aprire Classroom in una finestra di navigazione in incognito di Chrome.
ProjectPermissionDenied
ProjectPermissionDenied
indica che la richiesta ha tentato di modificare una
risorsa associata a un progetto Console per gli sviluppatori diverso.
Azione possibile: Indica che la tua applicazione non può effettuare la richiesta prevista. Può essere eseguita solo dal progetto della console per gli sviluppatori dell'ID client OAuth che ha creato la risorsa.
UserIneligibleToUpdateGradingPeriodSettings
UserIneligibleToUpdateGradingPeriodSettings
indica che la richiesta
ha tentato di modificare le impostazioni del periodo di valutazione in un corso in cui l'utente
che ha effettuato la richiesta o il proprietario del corso non dispone della licenza Google Workspace for
Education appropriata oppure l'utente che ha effettuato la richiesta non è un insegnante del corso o un amministratore
del dominio.
Azione possibile: Indica che la tua applicazione non può effettuare la richiesta prevista di aggiornamento delle impostazioni del periodo di valutazione a causa dello stato della licenza o del ruolo del corso. Le licenze possono essere assegnate nella Console di amministrazione Google.
HTTP 429: RESOURCE_EXHAUSTED
L'errore RESOURCE_EXHAUSTED
viene restituito quando l'azione richiesta non è consentita
perché alcune risorse, come la quota o la capacità del server, sono esaurite. Questi
tipi di errori di richiesta si verificano in genere perché la tua app ha prodotto un carico
eccessivo.
Per evitare di attivare questi limiti e aumentare l'affidabilità della tua applicazione, utilizza meccanismi di ripetizione. I meccanismi di ripetizione validi includono:
Utilizza il backoff esponenziale troncato per riprovare a inviare la richiesta e massimizzare la velocità effettiva delle richieste in ambienti simultanei.
Per evitare collisioni, valuta la possibilità di utilizzare il backoff esponenziale troncato con jitter. L'introduzione di jitter può contribuire a una rapida riuscita delle richieste introducendo un ritardo casuale che distribuisce i picchi di richieste.
Se la tua applicazione restituisce errori RESOURCE_EXHAUSTED
a causa di limitazioni
della quota, richiedi un aumento della quota. Per ulteriori informazioni, consulta l'articolo del Centro assistenza
Monitorare le quote API.
UserCourseJoinRateLimitReached
UserCourseJoinRateLimitReached
indica che l'utente ha già partecipato
al numero massimo di corsi consentiti in un giorno. Per ulteriori informazioni, consulta
la sezione "Inviti e dimensioni del gruppo" dell'articolo del Centro assistenza
Informazioni su criteri e limiti di Gruppi.
Azione possibile: Descrivi la causa dell'errore e suggerisci all'utente di attendere un giorno prima di iscriversi al corso.
HTTP 500: INTERNAL
INTERNAL
indica che si è verificato un errore imprevisto durante l'elaborazione della
richiesta. Gli errori di richiesta INTERNAL
possono spesso essere risolti anche utilizzando il backoff esponenziale per riprovare a inviare la richiesta. Se l'errore INTERNAL
persiste, può essere
segnalato inviando un bug allo
strumento Issue Tracker pubblico dell'API Classroom.