Request Errors

Błędy żądań

Błąd interfejsu Classroom API może zawierać kod błędu, który pomaga zidentyfikować przyczynę błędu i rozwiązać go. W zależności od kodu możesz wysłać prośbę ponownie lub poprosić użytkowników o wykonanie określonych działań.

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 artykułem 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 referencyjnej.

HTTP 400: FAILED_PRECONDITION

Parametr FAILED_PRECONDITION jest zwracany, gdy użytkownik podejmuje próbę wykonania czynności, która nie jest dozwolona, ponieważ użytkownik osiągnął limit lub stan aplikacji, na przykład CourseNotModifiable. Aby naprawić błąd FAILED_PRECONDITION, poinstruuj użytkownika, aby wykonał jakieś działanie, a następnie spróbuj ponownie. W niektórych przypadkach możesz użyć alternatywnych punktów końcowych, aby naprawić stan w imieniu użytkownika.

PendingInvitationExists

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 zostało już rozpoczęte, ale nie zostało jeszcze zaakceptowane przez nowego właściciela.

CourseMemberLimitReached

CourseMemberLimitReached oznacza, że podjęte działanie spowodowałoby 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 poproś użytkownika o usunięcie zbędnych uczestników zajęć.

CourseNotModifiable

CourseNotModifiable wskazuje, że odpowiedni kurs znajduje się w stanie, w którym nie można zmieniać jego właściwości (innych niż ten stan samego kursu).

Możliwe działanie: poproś użytkownika o zmianę stanu zajęć na możliwy do modyfikowania. Aby zmienić stan, użyj klawisza courses.patch(). Stan zajęć można zmienić w żądaniu, które zmienia inne właściwości.

CourseTeacherLimitReached

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 razie potrzeby możesz użyć metody teachers.delete(), by zarządzać listami nauczycieli w imieniu użytkownika.

UserGroupsMembershipLimitReached

UserGroupsMembershipLimitReached oznacza, że użytkownik należy już do 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. Jeśli użytkownik chce uczestniczyć w większej liczbie kursów, może utworzyć dodatkowe konto. W razie potrzeby możesz zarządzać listami uczniów w imieniu użytkownika za pomocą students.create() lub teachers.delete().

AttachmentNotVisible

Wartość AttachmentNotVisible oznacza, że co najmniej jeden określony załącznik jest niewidoczny dla użytkownika, nie ma żądanego typu albo 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. Sprawdź też, czy użytkownik ma odpowiednie uprawnienia do wyświetlania załącznika.

CannotRemoveCourseFolderOwner

CannotRemoveCourseFolderOwner oznacza, że nie można usunąć właściciela folderu zajęć na Dysku.

Możliwe działanie: opisz przyczynę niepowodzenia i poproś użytkownika o przeniesienie własności folderu na Dysku na innego użytkownika i spróbuj ponownie.

CannotRemoveCourseOwner

CannotRemoveCourseOwner wskazuje, że nie można usunąć właściciela zajęć.

Możliwe działanie: opisz przyczynę niepowodzenia i zasugeruj, że właściciel zajęć nie może zostać usunięty. W większości przypadków użytkownik próbuje się usunąć, co jest niedozwolone.

CannotRemoveCourseOwnerTransferIncomplete

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 poproś użytkownika, aby zaczekał chwilę na zakończenie asynchronicznego działania polegającego na przeniesieniu własności zajęć, a następnie spróbuj jeszcze raz.

CannotRemoveTeacherWithNoCourseOwner

CannotRemoveTeacherWithNoCourseOwner oznacza, że nauczyciela nie można usunąć z zajęć bez właściciela.

Możliwe działanie: opisz przyczynę niepowodzenia i poproś o usunięcie nauczyciela. W większości przypadków konto użytkownika właściciela zajęć zostało usunięte, co powodowało nieprawidłowy stan zajęć.

InactiveCourseOwner

InactiveCourseOwner oznacza, ż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 wykonasz żądane działanie.

Możliwe działanie: opisz przyczynę niepowodzenia i poproś administratora o przywrócenie konta właściciela zajęć, zanim spróbujesz ponownie.

IneligibleOwner

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, zaproponuj mu, aby przed zaktualizowaniem właściciela wysłał mu zaproszenie do zostania nauczycielem na zajęciach. Jeśli użytkownik wysyłający prośbę jest administratorem, zaproponuj mu najpierw dodanie go jako nauczyciela współprowadzącego.

UserCannotOwnCourse

UserCannotOwnCourse oznacza, że użytkownika nie można dodać jako właściciela zajęć.

Możliwe działanie: opisz przyczynę niepowodzenia i zaakceptuj prośbę o utworzenie zajęć, korzystając z tego użytkownika. Użytkownik, który nie jest administratorem wysyłający prośbę, może zobaczyć ten błąd, jeśli spróbuje utworzyć zajęcia z innym użytkownikiem jako właścicielem. Administrator wysyłający prośbę o 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 znajduje się w jego domenie.

HTTP 429: RESOURCE_EXHAUSTED

Żądanie RESOURCE_EXHAUSTED jest zwracane, gdy żądane działanie jest niedozwolone z powodu wyczerpania niektórych zasobów, takich jak limit lub pojemność serwera. Tego typu błędy żądań występują zwykle wtedy, gdy aplikacja powoduje nadmierne obciążenie.

Aby uniknąć wyzwalania tych limitów i zwiększyć niezawodność aplikacji, używaj mechanizmów ponawiania. Prawidłowe mechanizmy ponawiania prób to między innymi:

  • Użyj skróconego wykładniczego ponowienia, aby ponowić żądanie i zmaksymalizować przepustowość żądań w środowiskach równoczesnych.

  • Aby uniknąć kolizji, rozważ skrócenie wykładniczego ponowienia ze względu na zakłócenia. Wprowadzenie zakłóceń może przyspieszyć realizację żądań przez wprowadzenie randomizowanego opóźnienia, które rozkłada gwałtowne skoki liczby żądań.

Jeśli z powodu ograniczeń limitu aplikacja zwróci RESOURCE_EXHAUSTED błędów, zwiększ limit. Więcej informacji znajdziesz w artykule Monitorowanie limitów interfejsów API w Centrum pomocy.

UserCourseJoinRateLimitReached

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 w Centrum pomocy.

Możliwe działanie: opisz przyczynę niepowodzenia i poproś użytkownika o odczekanie 1 dnia przed dołączeniem do zajęć.

HTTP 500: INTERNAL

INTERNAL oznacza, że podczas przetwarzania żądania wystąpił nieoczekiwany błąd. Błędy żądania INTERNAL można często rozwiązać, korzystając z wykładniczego ponowienia do ponownej próby żądania. Jeśli błąd INTERNAL będzie się powtarzał, możesz zgłosić błąd za pomocą publicznego narzędzia do śledzenia problemów z interfejsem Classroom API.