Błędy żądania
Błąd interfejsu Classroom API może zawierać kod błędu, który pomaga zidentyfikować jego przyczynę i prawidłowo go naprawić. W zależności od kodu możesz wysłać prośbę jeszcze raz lub poprosić użytkowników o wykonanie określonych czynności.
Ta strona zawiera szczegółowe informacje o możliwych kodach błędów pogrupowane według kodu HTTP. Aby dowiedzieć się więcej o strukturze komunikatu o błędzie, zapoznaj się z sekcją Struktura komunikatów o błędach.
Ta strona zawiera szczegółowe informacje o możliwych kodach błędów pogrupowane według kodu HTTP. Informacje o tym, które metody zwracają konkretny kod błędu, znajdziesz w dokumentacji.
HTTP 400: FAILED_PRECONDITION
Gdy użytkownik podejmuje działanie, które jest niedozwolone, np. z powodu osiągnięcia limitu lub stanu aplikacji (np. CourseNotModifiable
), zwracany jest kod FAILED_PRECONDITION
. Aby naprawić błąd FAILED_PRECONDITION
, poproś użytkownika o wykonanie jakiegoś działania i spróbuj jeszcze raz. W niektórych przypadkach możesz użyć alternatywnych punktów końcowych, aby naprawić stan w imieniu użytkownika.
Oczekujące zaproszenieExists
PendingInvitationExists
oznacza, że ktoś został już zaproszony do przejęcia własności zajęć. Ten błąd występuje podczas przenoszenia własności zajęć, gdy przenoszenie już się rozpoczęło, ale nie zostało jeszcze zaakceptowane przez nowego właściciela.
Osiągnięto limit uczestników kursu
CourseMemberLimitReached
oznacza, że próba działania spowodowałaby przekroczenie maksymalnej dozwolonej liczby uczestników zajęć. Ten kod jest zwykle zwracany przez narzędzie students.create()
. Więcej informacji znajdziesz w sekcji „Limity wielkości zajęć” artykułu Zapraszanie uczniów na zajęcia w Centrum pomocy.
Możliwe działanie: opisz przyczynę niepowodzenia i zasugeruj użytkownikowi usunięcie z zajęć niepotrzebnych uczestników
Nie można modyfikować kursu
CourseNotModifiable
wskazuje, że kurs znajduje się w stanie, który nie pozwala na modyfikowanie jego właściwości (innych niż sam stan kursu).
Możliwe działanie: poproś użytkownika o zmianę stanu zajęć na możliwy do modyfikacji. Aby zmienić stan, użyj opcji courses.patch()
. Stan kursu można zmienić w żądaniu, które zmienia inne właściwości.
Osiągnięto limit nauczyciela kursu
CourseTeacherLimitReached
oznacza, że żądane działanie spowodowałoby przekroczenie maksymalnej dozwolonej liczby nauczycieli zajęć. Ten kod jest zwykle zwracany przez teachers.create()
. Więcej informacji znajdziesz w sekcji „Ograniczenia rozmiaru zajęć” artykułu Dodawanie do zajęć nauczyciela współprowadzącego w Centrum pomocy.
Możliwe działanie: opisz przyczynę niepowodzenia i poproś użytkownika o usunięcie zbędnych nauczycieli zajęć. W odpowiednich przypadkach w Twojej aplikacji możesz użyć metody teachers.delete(), aby zarządzać listami nauczycieli w imieniu użytkownika.
Osiągnięto limit członkostwa w grupach użytkowników
UserGroupsMembershipLimitReached
oznacza, że użytkownik jest już członkiem maksymalnej dozwolonej liczby grup i nie może dołączyć do żadnych zajęć. Ten kod jest zwykle zwracany przez students.create()
lub teachers.create()
. Więcej informacji znajdziesz w sekcji „Ograniczenia rozmiaru zajęć” artykułu Zapraszanie uczniów na zajęcia w Centrum pomocy.
Możliwe działanie: opisz przyczynę niepowodzenia i zasugeruj użytkownikowi opuszczenie zajęć, w których nie bierze udziału. Użytkownik może rozważyć utworzenie dodatkowego konta, jeśli chce uczestniczyć w większej liczbie kursów. W odpowiednich przypadkach możesz używać students.create()
lub teachers.delete()
do zarządzania listami w imieniu użytkownika.
Załącznik niewidoczny
Wartość AttachmentNotVisible
oznacza, że co najmniej jeden z określonych załączników jest niewidoczny dla użytkownika, nie ma żądanego typu lub nie istnieje. Na przykład ten błąd są zwracane w przypadku elementów na Dysku, które nie zostały udostępnione użytkownikowi.
Możliwe działanie: opisz przyczynę błędu i poproś użytkownika o ponowne sprawdzenie zawartych w nich identyfikatorów (np. identyfikatorów plików na Dysku). Upewnij się też, że użytkownik ma odpowiednie uprawnienia do wyświetlania załącznika.
Nie można usunąć właściciela folderuCourseFolder
CannotRemoveCourseFolderOwner
oznacza, że nie można usunąć właściciela folderu zajęć na Dysku.
Możliwe działanie: opisz przyczynę błędu i zaproponuj użytkownikowi przeniesienie własności folderu zajęć na Dysku na innego użytkownika i spróbuj jeszcze raz.
Nie można usunąć właściciela zajęć
CannotRemoveCourseOwner
oznacza, że nie można usunąć właściciela zajęć.
Możliwe działanie: opisz przyczynę niepowodzenia i zasugeruj usunięcie właściciela zajęć. W większości przypadków użytkownik próbuje usunąć siebie, co jest niedozwolone.
Nie można usunąć nieukończonego przenoszenia własności kursu
CannotRemoveCourseOwnerTransferIncomplete
oznacza, że nie można usunąć właściciela zajęć, ponieważ nadal trwa przenoszenie własności tych zajęć.
Możliwe działanie: opisz przyczynę błędu i zasugeruj użytkownikowi, aby poczekał chwilę na zakończenie asynchronicznego przenoszenia własności zajęć, a następnie spróbuj jeszcze raz.
Nie można usunąć nauczyciela bez właściciela kursu
CannotRemoveTeacherWithNoCourseOwner
oznacza, że nie można usunąć nauczyciela z zajęć, które nie mają właściciela.
Możliwe działanie: opisz przyczynę błędu i zasugeruj usunięcie nauczyciela. W większości przypadków konto użytkownika właściciela zajęć zostało usunięte, co spowodowało nieprawidłowy stan zajęć.
Nieaktywny właściciel zajęć
InactiveCourseOwner
wskazuje, że żądane działanie jest niedozwolone, ponieważ konto właściciela zajęć zostało usunięte. Administrator właściciela zajęć musi przywrócić konto właściciela zajęć, zanim wykona odpowiednie działanie.
Możliwe działanie: opisz przyczynę błędu i poproś administratora o przywrócenie konta właściciela zajęć, zanim spróbujesz ponownie.
Nieodpowiedni właściciel
IneligibleOwner
oznacza, że nie można dodać użytkownika jako właściciela zajęć, ponieważ nie jest on nauczycielem współprowadzącym.
Możliwe działanie: opisz przyczynę błędu. Jeśli użytkownik wysyłający prośbę nie jest administratorem, poproś go o wysłanie mu zaproszenia do zostania nauczycielem na zajęciach przed zaktualizowaniem właściciela. Jeśli użytkownik wysyłający prośbę jest administratorem, zaproponuj, aby najpierw dodał go jako nauczyciela współprowadzącego.
Niezgodny Użytkownik
UserCannotOwnCourse
oznacza, że nie można dodać użytkownika jako właściciela zajęć.
Możliwe działanie: opisz przyczynę niepowodzenia i zaproponuj, aby zajęcia nie mogły zostać utworzone przy pomocy użytkownika jako właściciela zajęć. Użytkownik bez uprawnień administracyjnych, który prosi o utworzenie zajęć, może zobaczyć ten błąd, gdy spróbuje utworzyć zajęcia z innym użytkownikiem jako właścicielem. Administrator wysyłający prośbę do użytkownika może zobaczyć ten błąd, jeśli konto użytkownika określone jako właściciel nie istnieje lub użytkownik nie jest w jego domenie.
HTTP 429: RESOURCE_EXHAUSTED
Wartość RESOURCE_EXHAUSTED
jest zwracana, gdy żądane działanie jest niedozwolone z powodu wyczerpania zasobu, na przykład limitu lub wydajności serwera. Tego typu błędy żądań występują zwykle wtedy, gdy aplikacja powoduje nadmierne wczytywanie.
Aby uniknąć aktywowania tych limitów i zwiększyć niezawodność aplikacji, używaj mechanizmów ponawiania próby. Prawidłowe mechanizmy ponawiania próby to między innymi:
Użyj skróconego wykładniczego ponowienia, aby ponowić żądanie i zmaksymalizować przepustowość żądań w równoczesnych środowiskach.
Aby uniknąć kolizji, rozważ skrócenie wykładniczego ponowienia z zakłóceniami. Wprowadzenie zakłóceń może pomóc w szybszym realizacji żądań przez wprowadzenie randomizowanego opóźnienia, które rozkłada nagłe skoki liczby żądań.
Jeśli Twoja aplikacja zwraca RESOURCE_EXHAUSTED
błędów z powodu ograniczeń limitu, zwiększ limit. Więcej informacji znajdziesz w artykule Monitorowanie limitów interfejsów API w Centrum pomocy.
Osiągnięty limit ruchu w kursie użytkownika
UserCourseJoinRateLimitReached
oznacza, że użytkownik dołączył już do maksymalnej dozwolonej liczby kursów w ciągu jednego dnia. Więcej informacji znajdziesz w sekcji „Zaproszenia do grup i rozmiar” artykułu Omówienie zasad i ograniczeń obowiązujących w Grupach dyskusyjnych.
Możliwe działanie: opisz przyczynę niepowodzenia i zaproponuj, aby użytkownik odczekał 1 dzień przed dołączeniem do zajęć.
HTTP 500: INTERNAL
INTERNAL
oznacza, że podczas przetwarzania żądania wystąpił nieoczekiwany błąd. Błędy INTERNAL
w żądaniach można często wyeliminować, korzystając z wykładniczego ponowienia. Jeśli błąd INTERNAL
będzie się powtarzać, możesz zgłosić błąd za pomocą publicznego narzędzia do rejestrowania błędów interfejsu Classroom API.