W tym dokumencie opisujemy niektóre kody błędów i komunikaty zwracane przez interfejsy API Google. Wymienione tu błędy występują w globalnej lub domyślnej domenie interfejsów API Google. Wiele interfejsów definiuje również własne domeny, które zwracają własne błędy niewystępujące w domenie globalnej. W przypadku tych błędów wartość właściwości domain
w odpowiedzi JSON będzie wartością charakterystyczną dla interfejsu API. Jej przykładem może być youtube.parameter
.
Na tej stronie opisujemy błędy według ich kodów stanu HTTP, zgodnie z definicją w RFC 7231.
Ta przykładowa odpowiedź JSON przedstawia sposób powiadamiania o błędzie globalnym:
{ "error": { "errors": [ { "domain": "global", "reason": "invalidParameter", "message": "Invalid string value: 'asdf'. Allowed values: [mostpopular]", "locationType": "parameter", "location": "chart" } ], "code": 400, "message": "Invalid string value: 'asdf'. Allowed values: [mostpopular]" } }
Błędy
- MOVED_PERMANENTLY (301) (Przeniesiono na stałe)
- SEE_OTHER (303) (Zobacz inne)
- NOT_MODIFIED (304) (Nie zmodyfikowano)
- TEMPORARY_REDIRECT (307) (Tymczasowe przekierowanie)
- BAD_REQUEST (400) (Nieprawidłowe żądanie)
- UNAUTHORIZED (401) (Brak uprawnień)
- PAYMENT_REQUIRED (402) (Wymagana płatność)
- FORBIDDEN (403) (Zabronione)
- NOT_FOUND (404) (Nie znaleziono)
- METHOD_NOT_ALLOWED (405) (Metoda niedozwolona)
- CONFLICT (409) (Konflikt)
- GONE (410) (Brak)
- PRECONDITION_FAILED (412) (Warunek wstępny nie został spełniony)
- REQUEST_ENTITY_TOO_LARGE (413) (Zbyt duże żądanie)
- REQUESTED_RANGE_NOT_SATISFIABLE (416) (Zakres żądania niedostępny)
- EXPECTATION_FAILED (417) (Oczekiwanie nie zostało spełnione)
- PRECONDITION_REQUIRED (428) (Wymagane spełnienie warunków wstępnych)
- TOO_MANY_REQUESTS (429) (Zbyt wiele żądań)
- INTERNAL_SERVER_ERROR (500) (Błąd wewnętrzny serwera)
- NOT_IMPLEMENTED (501) (Nie wdrożono)
- SERVICE_UNAVAILABLE (503) (Usługa niedostępna)
MOVED_PERMANENTLY (301) (Przeniesiono na stałe)
Kod błędu | Opis |
---|---|
movedPermanently |
To i kolejne żądania tej samej operacji muszą być wysyłane na adres URL podany w nagłówku Location tej odpowiedzi, a nie na adres, na który żądanie zostało pierwotnie wysłane. |
SEE_OTHER (303) (Zobacz inne)
Kod błędu | Opis |
---|---|
seeOther |
Żądanie zostało przetworzone. Aby odebrać odpowiedź, wyślij żądanie GET na adres URL podany w nagłówku Location . |
mediaDownloadRedirect |
Żądanie zostało przetworzone. Aby odebrać odpowiedź, wyślij żądanie GET na adres URL podany w nagłówku Location . |
NOT_MODIFIED (304) (Nie zmodyfikowano)
Kod błędu | Opis |
---|---|
notModified |
Warunek podany w nagłówku If-None-Match nie został spełniony. Ta odpowiedź wskazuje, że żądany dokument nie został zmodyfikowany i powinna zostać pobrana wersja z pamięci podręcznej. Sprawdź wartość nagłówka żądania HTTP If-None-Match . |
TEMPORARY_REDIRECT (307) (Tymczasowe przekierowanie)
Kod błędu | Opis |
---|---|
temporaryRedirect |
Aby żądanie zostało przetworzone, należy przesłać je ponownie na adres URL podany w nagłówku Location tej odpowiedzi. |
BAD_REQUEST (400) (Nieprawidłowe żądanie)
Kod błędu | Opis |
---|---|
badRequest |
Żądanie do interfejsu API jest nieprawidłowe lub ma nieprawidłowy format. Dlatego serwer interfejsu API nie zrozumiał żądania. |
badBinaryDomainRequest |
Żądanie domeny binarnej jest nieprawidłowe. |
badContent |
Typ treści danych żądania lub typ treści części żądania wieloczęściowego jest nieobsługiwany. |
badLockedDomainRequest |
Żądanie zablokowanej domeny jest nieprawidłowe. |
corsRequestWithXOrigin |
Żądanie CORS zawiera nagłówek XD3 X-Origin, który wskazuje na nieprawidłowe żądanie CORD. |
endpointConstraintMismatch |
Żądanie nie zostało zrealizowane, ponieważ nie było zgodne z podanym interfejsem API. Sprawdź poprawność wartości ścieżki adresu URL. |
invalid |
Żądanie nie zostało zrealizowane, ponieważ zawierało nieprawidłową wartość. Może chodzić o wartość parametru, nagłówka lub właściwości. |
invalidAltValue |
Wartość parametru alt określa nieprawidłowy format wyjściowy. |
invalidHeader |
Żądanie nie zostało zrealizowane, ponieważ zawierało nieprawidłowy nagłówek. |
invalidParameter |
Żądanie nie zostało zrealizowane, ponieważ zawierało nieprawidłowy parametr lub wartość parametru. Przejrzyj dokumentację interfejsu API, by ustalić, które parametry są poprawne w danym żądaniu. |
invalidQuery |
Żądanie jest nieprawidłowe. Przejrzyj dokumentację interfejsu API, by ustalić, które parametry są obsługiwane w żądaniu, i sprawdzić, czy żądanie zawiera nieprawidłową kombinację parametrów lub nieprawidłową wartość parametru. Sprawdź wartość parametru żądania q . |
keyExpired |
Klucz interfejsu API podany w żądaniu utracił ważność, co oznacza, że serwer interfejsu API nie może sprawdzić limitu aplikacji wysyłającej żądanie. Otwórz Google Developers Console, by dowiedzieć się więcej lub uzyskać nowy klucz. |
keyInvalid |
Klucz interfejsu API podany w żądaniu jest nieprawidłowy, co oznacza, że serwer interfejsu API nie może sprawdzić limitu aplikacji wysyłającej żądanie. Otwórz Google Developers Console, by znaleźć swój klucz interfejsu API lub uzyskać nowy. |
lockedDomainCreationFailure |
W ciągu zapytania został odebrany token OAuth, czego ten interfejs API zabrania w przypadku formatów odpowiedzi innych niż JSON i XML. Jeśli to możliwe, przesyłaj token OAuth w nagłówku Authorization. |
notDownload |
Pod ścieżkę adresu URL /download/* można przesyłać tylko żądania pobrania elementów multimedialnych. Wyślij żądanie ponownie pod tę samą ścieżkę, ale bez prefiksu /download . |
notUpload |
Żądanie nie zostało zrealizowane, ponieważ nie jest to żądanie przesłania danych, a tylko takie żądania można przesyłać do identyfikatorów URI /upload/* . Wyślij żądanie ponownie pod tę samą ścieżkę, ale bez prefiksu /upload . |
parseError |
Serwer interfejsu API nie mógł przeanalizować treści żądania. |
required |
W żądaniu do interfejsu API brakuje wymaganych informacji. Może chodzić o parametr lub właściwość zasobu. |
tooManyParts |
Wieloczęściowe żądanie nie zostało zrealizowane, ponieważ zawierało zbyt wiele części. |
unknownApi |
Interfejs API wywoływany przez żądanie nie został rozpoznany. |
unsupportedMediaProtocol |
Klient używa nieobsługiwanego protokołu multimedialnego. |
unsupportedOutputFormat |
Wartość parametru alt określa format wyjściowy, którego ta usługa nie obsługuje. Sprawdź wartość parametru żądania alt . |
wrongUrlForUpload |
Żądanie przesyłania nie zostało zrealizowane, ponieważ wysłano je do nieprawidłowego identyfikatora URI. Żądania przesyłania muszą być wysyłane do identyfikatorów URI zawierających prefiks /upload/* . Wyślij żądanie ponownie pod tę samą ścieżkę, ale z prefiksem /upload . |
UNAUTHORIZED (401) (Brak uprawnień)
Kod błędu | Opis |
---|---|
unauthorized |
Użytkownik nie ma uprawnień do wykonania żądania. |
authError |
Dane uwierzytelniające podane dla żądania są nieprawidłowe. Sprawdź wartość nagłówka żądania HTTP Authorization . |
expired |
Sesja wygasła. Sprawdź wartość nagłówka żądania HTTP Authorization . |
lockedDomainExpired |
Żądanie nie zostało zrealizowane, ponieważ dotychczas poprawna domena zablokowana wygasła. |
required |
Użytkownik musi być zalogowany, by wykonać to żądanie do interfejsu API. Sprawdź wartość nagłówka żądania HTTP Authorization . |
PAYMENT_REQUIRED (402) (Wymagana płatność)
Kod błędu | Opis |
---|---|
dailyLimitExceeded402 |
Osiągnięto dzienny limit budżetu ustawiony przez dewelopera. |
quotaExceeded402 |
Żądana operacja wymaga więcej zasobów, niż pozwala limit. Do ukończenia operacji wymagana jest płatność. |
user402 |
Żądana operacja wymaga pewnego rodzaju płatności przez uwierzytelnionego użytkownika. |
FORBIDDEN (403) (Zabronione)
Kod błędu | Opis |
---|---|
forbidden |
Żądana operacja jest zabroniona i nie można jej wykonać. |
accessNotConfigured |
Projekt nie jest skonfigurowany pod kątem dostępu do tego interfejsu API. Użyj Google Developers Console, by aktywować interfejs API dla projektu. |
accessNotConfigured |
Projekt został zablokowany z powodu naruszenia zasad. Patrz http://support.google.com/code/go/developer_compliance. |
accessNotConfigured |
Projekt został oznaczony do usunięcia. |
accountDeleted |
Konto użytkownika powiązane z danymi uwierzytelniającymi żądanie zostało usunięte. Sprawdź wartość nagłówka żądania HTTP Authorization . |
accountDisabled |
Konto użytkownika powiązane z danymi uwierzytelniającymi żądanie zostało wyłączone. Sprawdź wartość nagłówka żądania HTTP Authorization . |
accountUnverified |
Adres e-mail użytkownika wysyłającego żądanie nie został zweryfikowany. Sprawdź wartość nagłówka żądania HTTP Authorization . |
concurrentLimitExceeded |
Żądanie nie zostało zrealizowane, ponieważ został osiągnięty limit jednoczesnego wykorzystania. |
dailyLimitExceeded |
Osiągnięto dzienny limit wykorzystania interfejsu API. |
dailyLimitExceeded |
Osiągnięto dzienny limit wykorzystania i projekt został zablokowany z powodu naruszenia zasad. Aby rozwiązać ten problem, przejdź do formularza pomocy w zakresie zgodności z zasadami interfejsów API Google. |
dailyLimitExceededUnreg |
Żądanie nie zostało zrealizowane, ponieważ został osiągnięty dzienny limit wykorzystania interfejsu API bez uwierzytelnienia. Dalsze używanie interfejsu API wymaga zarejestrowania się przez Google Developers Console. |
downloadServiceForbidden |
Interfejs API nie obsługuje usługi pobierania. |
insufficientAudience |
Nie można zrealizować żądania dla tych odbiorców. |
insufficientAuthorizedParty |
Nie można zrealizować żądania dla tej aplikacji. |
insufficientPermissions |
Uwierzytelniony użytkownik nie ma uprawnień do wykonania tego żądania. |
limitExceeded |
Nie można zrealizować żądania z powodu ograniczeń dostępu lub liczby żądań. |
lockedDomainForbidden |
Ten interfejs API nie obsługuje zablokowanych domen. |
quotaExceeded |
Żądana operacja wymaga więcej zasobów, niż pozwala limit. |
rateLimitExceeded |
W danym okresie wysłano zbyt wiele żądań. |
rateLimitExceededUnreg |
Przekroczono limit liczby żądań i należy zarejestrować aplikację, aby możliwe było dalsze wywoływanie interfejsu API. Zarejestruj się przez Google Developers Console. |
responseTooLarge |
Żądany zasób jest zbyt duży, by go zwrócić. |
servingLimitExceeded |
Ogólny limit liczby żądań podany dla interfejsu API został już osiągnięty. |
sslRequired |
Do wykonania tej operacji wymagany jest protokół SSL. |
unknownAuth |
Serwer interfejsu API nie rozpoznaje schematu autoryzacji użytego w żądaniu. Sprawdź wartość nagłówka żądania HTTP Authorization . |
userRateLimitExceeded |
Żądanie nie zostało zrealizowane, bo osiągnięto limit liczby żądań na użytkownika. |
userRateLimitExceededUnreg |
Żądanie nie zostało zrealizowane, ponieważ osiągnięto limit liczby żądań na użytkownika, a deweloper klienta nie został zidentyfikowany w żądaniu. Użyj Konsoli Play (https://console.developers.google.com), aby utworzyć projekt dla aplikacji. |
variableTermExpiredDailyExceeded |
Żądanie nie zostało zrealizowane, ponieważ wygasł zmienny limit okresowy i osiągnięto limit dzienny. |
variableTermLimitExceeded |
Żądanie nie zostało zrealizowane, ponieważ osiągnięto zmienny limit okresowy. |
NOT_FOUND (404) (Nie znaleziono)
Kod błędu | Opis |
---|---|
notFound |
Nie udało się wykonać żądanej operacji, ponieważ nie znaleziono zasobu powiązanego z żądaniem. |
notFound |
Nie znaleziono zasobu powiązanego z żądaniem. Jeśli ten interfejs API nie był używany w ciągu ostatnich dwóch tygodni, wdróż ponownie aplikację App Engine i ponownie wykonaj wywołanie. |
unsupportedProtocol |
Protokół użyty w żądaniu nie jest obsługiwany. |
METHOD_NOT_ALLOWED (405) (Metoda niedozwolona)
Kod błędu | Opis |
---|---|
httpMethodNotAllowed |
Metoda HTTP powiązana z żądaniem nie jest obsługiwana. |
CONFLICT (409) (Konflikt)
Kod błędu | Opis |
---|---|
conflict |
Nie można zrealizować żądania, bo żądana operacja spowodowałaby konflikt z istniejącym elementem. Na przykład żądanie próbujące utworzyć duplikat elementu spowodowałoby konflikt, choć zduplikowane elementy są zwykle identyfikowane przez bardziej szczegółowe błędy. |
duplicate |
Nie udało się wykonać żądanej operacji, ponieważ nastąpiła próba utworzenia już istniejącego zasobu. |
GONE (410) (Brak)
Kod błędu | Opis |
---|---|
deleted |
Żądanie nie zostało zrealizowane, ponieważ powiązany z nim zasób został usunięty. |
PRECONDITION_FAILED (412) (Warunek wstępny nie został spełniony)
Kod błędu | Opis |
---|---|
conditionNotMet |
Warunek określony w nagłówku HTTP If-Match lub If-None-Match nie został spełniony. Szczegółowe informacje zawiera sekcja ETag specyfikacji HTTP. Sprawdź wartość nagłówka żądania HTTP If-Match . |
REQUEST_ENTITY_TOO_LARGE (413) (Zbyt duże żądanie)
Kod błędu | Opis |
---|---|
backendRequestTooLarge |
Żądanie jest za duże. |
batchSizeTooLarge |
Żądanie zbiorcze zawiera zbyt wiele elementów. |
uploadTooLarge |
Żądanie nie zostało zrealizowane, ponieważ przesłane w nim dane mają zbyt duży rozmiar. |
REQUESTED_RANGE_NOT_SATISFIABLE (416) (Zakres żądania niedostępny)
Kod błędu | Opis |
---|---|
requestedRangeNotSatisfiable |
Żądanie określa zakres, którego nie można spełnić. |
EXPECTATION_FAILED (417) (Oczekiwanie nie zostało spełnione)
Kod błędu | Opis |
---|---|
expectationFailed |
Serwer nie może spełnić oczekiwań klienta. |
PRECONDITION_REQUIRED (428) (Wymagane spełnienie warunków wstępnych)
Kod błędu | Opis |
---|---|
preconditionRequired |
Żądanie wymaga warunku wstępnego, który nie został podany. Aby to żądanie zostało zrealizowane, należy wraz z nim podać nagłówek If-Match lub If-None-Match . |
TOO_MANY_REQUESTS (429) (Zbyt wiele żądań)
Kod błędu | Opis |
---|---|
rateLimitExceeded |
W danym okresie wysłano zbyt wiele żądań. |
INTERNAL_SERVER_ERROR (500) (Błąd wewnętrzny serwera)
Kod błędu | Opis |
---|---|
internalError |
Żądanie nie zostało zrealizowane z powodu błędu wewnętrznego. |
NOT_IMPLEMENTED (501) (Nie wdrożono)
Kod błędu | Opis |
---|---|
notImplemented |
Żądana operacja nie została zaimplementowana. |
unsupportedMethod |
Żądanie nie zostało zrealizowane, ponieważ próbuje wykonać nieznaną metodę lub operację. |
SERVICE_UNAVAILABLE (503) (Usługa niedostępna)
Kod błędu | Opis |
---|---|
backendError |
Wystąpił błąd po stronie backendu. |
backendNotConnected |
Żądanie nie zostało zrealizowane z powodu błędu połączenia. |
notReady |
Serwer interfejsu API nie jest gotowy do przyjmowania żądań. |