Questa pagina descrive alcuni messaggi di errore, problemi e possibili azioni comuni per i seguenti tipi di errori dell'API Google Classroom:
- HTTP 400:
FAILED_PRECONDITION
- HTTP 403:
PERMISSION_DENIED
- HTTP 429:
RESOURCE_EXHAUSTED
- HTTP 500:
INTERNAL
HTTP 400: FAILED_PRECONDITION
Viene restituito un valore FAILED_PRECONDITION
quando l'utente tenta di eseguire un'azione che non può essere consentita, ad esempio perché ha raggiunto un limite o uno stato dell'applicazione, come CourseNotModifiable
. Per correggere un FAILED_PRECONDITION
, invita l'utente a eseguire un'azione e poi riprova. In alcuni casi, potresti anche 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.
Possibile azione: descrivi la causa dell'errore e suggerisci all'utente di ricontrollare gli identificativi, ad esempio gli ID file di Drive, che ha incluso. Inoltre, assicurati che l'utente abbia le autorizzazioni appropriate per visualizzare l'allegato.
CannotRemoveCourseFolderOwner
CannotRemoveCourseFolderOwner
indica che il proprietario della cartella Drive del corso potrebbe non essere rimosso.
Possibile azione: descrivi la causa dell'errore e suggerisci all'utente di trasferire la proprietà della cartella di Drive del corso a un altro utente e di riprovare.
CannotRemoveCourseOwner
CannotRemoveCourseOwner
indica che il proprietario del corso potrebbe non essere rimosso.
Possibile azione: descrivi la causa dell'errore e suggerisci di non rimuovere il proprietario del corso. Nella maggior parte dei casi, l'utente sta tentando di rimuoversi, cosa non consentita.
CannotRemoveCourseOwnerTransferIncomplete
CannotRemoveCourseOwnerTransferIncomplete
indica che il proprietario del corso potrebbe
non essere rimosso perché il trasferimento della proprietà di questo corso è ancora in
progress.
Possibile azione: descrivi la causa dell'errore e suggerisci all'utente di attendere qualche istante perché l'azione asincrona di trasferimento della proprietà del corso venga completata, quindi riprova.
CannotRemoveTeacherWithNoCourseOwner
CannotRemoveTeacherWithNoCourseOwner
indica che un insegnante non può essere rimosso da un corso senza proprietario.
Possibile azione: descrivi la causa del fallimento e suggerisci che l'insegnante potrebbe non essere rimosso. Nella maggior parte dei casi, l'account utente del proprietario del corso è stato eliminato, causando un stato del corso non valido.
CourseMemberLimitReached
CourseMemberLimitReached
indica che l'azione tentata supererebbe il numero massimo consentito di partecipanti al corso. Questo codice viene solitamente restituito dall'students.create()
. Per ulteriori informazioni, consulta la sezione "Limiti di dimensioni dei corsi" dell'articolo del Centro assistenza Invitare gli studenti a un corso.
Possibile azione: descrivi la causa dell'errore e suggerisci all'utente di rimuovere gli elementi del corso non necessari
CourseNotModifiable
CourseNotModifiable
indica che il corso pertinente è in uno stato che
non consente la modifica delle sue proprietà (diverso dallo stato del corso
in sé).
Possibile azione: invita l'utente a 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 "Limiti di dimensione dei corsi" dell'articolo del Centro assistenza Aggiungere un co-insegnante a un corso.
Possibile azione:
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 di argomenti consentiti in un corso. Questo codice viene solitamente
restituito dal metodo courses.topics.create()
.
Possibile azione:
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.
Possibile azione: 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 co-insegnante.
Possibile azione: descrivi la causa dell'errore. Se l'utente che effettua la richiesta non è un amministratore, consiglia di inviare prima all'utente un invito a diventare insegnante del corso prima di aggiornare il proprietario. Se l'utente che effettua la richiesta è un amministratore, suggerisci di aggiungere prima l'utente come co-insegnante del corso.
PendingInvitationExists
PendingInvitationExists
indica che qualcuno è già stato invitato a 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 è stato ancora accettato dal
nuovo proprietario.
UserCannotOwnCourse
UserCannotOwnCourse
indica che l'utente non può essere aggiunto come proprietario del corso.
Possibile azione: descrivi la causa dell'errore e suggerisci che il corso non può essere creato con l'utente come proprietario. 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 fa parte del suo dominio.
UserGroupsMembershipLimitReached
UserGroupsMembershipLimitReached
indica che l'utente fa già parte del numero massimo di gruppi consentiti e non può partecipare a nessun corso. Questo codice viene solitamente restituito da students.create()
o teachers.create()
.
Per ulteriori informazioni, consulta la sezione "Limiti di dimensione dei corsi" dell'articolo del Centro assistenza su come invitare gli studenti a un corso.
Possibile azione:
descrivi la causa dell'errore e suggerisci all'utente di abbandonare i corsi
a cui non partecipa. L'utente può prendere in considerazione la creazione di un account aggiuntivo se deve partecipare ad altri corsi. Se applicabile alla tua app,
puoi utilizzare students.create()
o teachers.delete()
per gestire i ruoli 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 accompagnatore dell'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 più comuni dell'API Classroom.
CannotDirectAddUser
CannotDirectAddUser
indica che un utente non può essere aggiunto direttamente al
corso. Questo codice si verifica 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.
Possibile azione: descrivi la causa dell'errore e suggerisci all'amministratore del dominio di verificare che l'account utente esista e che si trovi nel dominio dell'amministratore del corso.
ClassroomApiDisabled
ClassroomApiDisabled
indica che l'utente che effettua la richiesta non ha accesso all'API Classroom.
Possibile azione: indirizza l'utente alle istruzioni su come attivare l'accesso ai dati di Classroom. Consulta anche ClassroomDisabled, poiché l'utente potrebbe utilizzare l'account sbagliato.
ClassroomDisabled
ClassroomDisabled
indica che l'utente che effettua la richiesta non ha accesso a
Classroom.
Possibile azione: indirizza l'utente alle istruzioni su come attivare l'accesso a Classroom. L'utente potrebbe anche utilizzare l'account sbagliato, quindi potresti anche fornire un link per l'utilizzo di 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.
Possibile azione: 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.
Possibile azione: questo errore può verificarsi se l'utente accede al componente aggiuntivo con un account diverso da quello in Classroom. Invita l'utente a uscire da tutti gli altri account nel browser o ad aprire Classroom in una finestra di Chrome in incognito.
ProjectPermissionDenied
ProjectPermissionDenied
indica che la richiesta ha tentato di modificare una
risorsa associata a un altro progetto Console per gli sviluppatori.
Azione possibile: indica che la tua applicazione non può effettuare la richiesta prevista. Può essere eseguito solo dal progetto Developer Console dell'ID client OAuth che ha creato la risorsa.
UserIneligibleToUpdateGradingPeriodSettings
UserIneligibleToUpdateGradingPeriodSettings
indica che la richiesta ha provato a 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.
Possibile azione: indica che la tua applicazione non può effettuare la richiesta prevista per aggiornare le impostazioni del periodo di valutazione a causa dello stato della licenza dell'utente che effettua la richiesta o del proprietario del corso. Le licenze possono essere assegnate nella Console di amministrazione Google.
HTTP 429: RESOURCE_EXHAUSTED
Il codice RESOURCE_EXHAUSTED
viene restituito quando l'azione richiesta non è consentita perché alcune risorse, ad esempio la quota o la capacità del server, sono esaurite. Questi tipi di errori di richiesta si verificano in genere perché l'app ha generato un carico eccessivo.
Per evitare di attivare questi limiti e aumentare l'affidabilità della tua applicazione, utilizza i meccanismi di ripetizione. I meccanismi di ripetizione validi includono:
Utilizza il backoff esponenziale troncato per riprovare a inviare la richiesta e massimizzare il throughput delle richieste in ambienti con più richieste in contemporanea.
Per evitare collisioni, valuta la possibilità di utilizzare il backoff esponenziale troncato con jitter. L'introduzione del jitter può contribuire a far sì che le richieste vengano completate più rapidamente introducendo un ritardo randomizzato che distribuisce gli picchi delle 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à seguito il numero massimo di corsi consentiti in un giorno. Per ulteriori informazioni, consulta la sezione "Inviti e dimensioni dei gruppi" dell'articolo del Centro assistenza Informazioni su criteri e limiti di Gruppi.
Possibile azione: descrivi la causa dell'errore e suggerisci all'utente di attendere un giorno prima di partecipare al corso.
HTTP 500: INTERNAL
INTERNAL
indica che si è verificato un errore imprevisto durante l'elaborazione della richiesta. Spesso gli errori di richiesta INTERNAL
possono essere risolti anche utilizzando il backoff esponenziale per riprovare a inviare la richiesta. Se un errore INTERNAL
persiste, può essere segnalato inviando un bug nell'Issue Tracker pubblico dell'API Classroom.