Indexing API – komunikaty o błędach

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

  1. MOVED_PERMANENTLY (301) (Przeniesiono na stałe)
  2. SEE_OTHER (303) (Zobacz inne)
  3. NOT_MODIFIED (304) (Nie zmodyfikowano)
  4. TEMPORARY_REDIRECT (307) (Tymczasowe przekierowanie)
  5. BAD_REQUEST (400) (Nieprawidłowe żądanie)
  6. UNAUTHORIZED (401) (Brak uprawnień)
  7. PAYMENT_REQUIRED (402) (Wymagana płatność)
  8. FORBIDDEN (403) (Zabronione)
  9. NOT_FOUND (404) (Nie znaleziono)
  10. METHOD_NOT_ALLOWED (405) (Metoda niedozwolona)
  11. CONFLICT (409) (Konflikt)
  12. GONE (410) (Brak)
  13. PRECONDITION_FAILED (412) (Warunek wstępny nie został spełniony)
  14. REQUEST_ENTITY_TOO_LARGE (413) (Zbyt duże żądanie)
  15. REQUESTED_RANGE_NOT_SATISFIABLE (416) (Zakres żądania niedostępny)
  16. EXPECTATION_FAILED (417) (Oczekiwanie nie zostało spełnione)
  17. PRECONDITION_REQUIRED (428) (Wymagane spełnienie warunków wstępnych)
  18. TOO_MANY_REQUESTS (429) (Zbyt wiele żądań)
  19. INTERNAL_SERVER_ERROR (500) (Błąd wewnętrzny serwera)
  20. NOT_IMPLEMENTED (501) (Nie wdrożono)
  21. SERVICE_UNAVAILABLE (503) (Usługa niedostępna)

MOVED_PERMANENTLY (301)

Kod błędu Opis
movedPermanently To i kolejne żądania tej samej operacji muszą być wysyłane pod adres URL podany w nagłówku Location tej odpowiedzi, a nie pod adres, na który żądanie zostało pierwotnie wysłane.

SEE_OTHER (303)

Kod błędu Opis
seeOther Żądanie zostało przetworzone. Aby odebrać odpowiedź, wyślij żądanie GET pod adres URL podany w nagłówku Location.
mediaDownloadRedirect Żądanie zostało przetworzone. Aby odebrać odpowiedź, wyślij żądanie GET pod adres URL podany w nagłówku Location.

NOT_MODIFIED (304)

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 If-None-Match żądania HTTP.

TEMPORARY_REDIRECT (307)

Kod błędu Opis
temporaryRedirect Aby żądanie zostało przetworzone, należy przesłać je ponownie pod adres URL podany w nagłówku Location tej odpowiedzi.

BAD_REQUEST (400)

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 q żądania.
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ę /download/* adresu URL 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 alt żądania.
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)

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 Authorization żądania HTTP.
expired Sesja wygasła. Sprawdź wartość nagłówka Authorization żądania HTTP.
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 Authorization żądania HTTP.

PAYMENT_REQUIRED (402)

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)

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 Authorization żądania HTTP.
accountDisabled Konto użytkownika powiązane z danymi uwierzytelniającymi żądanie zostało wyłączone. Sprawdź wartość nagłówka Authorization żądania HTTP.
accountUnverified Adres e-mail użytkownika wysyłającego żądanie nie został zweryfikowany. Sprawdź wartość nagłówka Authorization żądania HTTP.
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 Authorization żądania HTTP.
userRateLimitExceeded Żądanie nie zostało zrealizowane, bo osiągnięto limit liczby żądań na użytkownika.
userRateLimitExceededUnreg Żądanie nie zostało zrealizowane, bo osiągnięto limit liczby żądań na użytkownika, a deweloper klienta nie został zidentyfikowany w żądaniu. Użyj Google Developer Console (https://developers.google.com/console), by 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)

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)

Kod błędu Opis
httpMethodNotAllowed Metoda HTTP powiązana z żądaniem nie jest obsługiwana.

CONFLICT (409)

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)

Kod błędu Opis
deleted Żądanie nie zostało zrealizowane, ponieważ powiązany z nim zasób został usunięty.

PRECONDITION_FAILED (412)

Kod błędu Opis
conditionNotMet Warunek określony w nagłówku If-Match lub If-None-Match żądania HTTP nie został spełniony. Szczegółowe informacje zawiera sekcja ETag specyfikacji HTTP. Sprawdź wartość nagłówka If-Match żądania HTTP.

REQUEST_ENTITY_TOO_LARGE (413)

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)

Kod błędu Opis
requestedRangeNotSatisfiable Żądanie określa zakres, którego nie można spełnić.

EXPECTATION_FAILED (417)

Kod błędu Opis
expectationFailed Serwer nie może spełnić oczekiwań klienta.

PRECONDITION_REQUIRED (428)

Kod błędu Opis
preconditionRequired Żądanie wymaga warunku wstępnego, który nie został podany. Aby to żądanie zostało zrealizowane, trzeba wraz z nim podać nagłówek If-Match lub If-None-Match.

TOO_MANY_REQUESTS (429)

Kod błędu Opis
rateLimitExceeded W danym okresie wysłano zbyt wiele żądań.

INTERNAL_SERVER_ERROR (500)

Kod błędu Opis
internalError Żądanie nie zostało zrealizowane z powodu błędu wewnętrznego.

NOT_IMPLEMENTED (501)

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)

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ń.

Błędy interfejsu Indexing API

We wszystkich tych przypadkach żądanie zostało odrzucone i URL nie jest indeksowany przez Google. Dotyczy to też głównych komunikatów o błędach.

BAD_REQUEST (400)

Komunikat o błędzie Opis
Missing attribute. 'url' attribute is required. Użytkownik nie ustawił adresu URL w żądaniu.
Invalid attribute. 'url' is not in standard URL format Użytkownik ustawił adres URL, który nie wygląda jak adres URL, np. „abcd”.
Unknown type. 'type' attribute is required and must be 'URL_REMOVED' or 'URL_UPDATED'. Użytkownik nie ustawił typu powiadomienia.
Invalid value at 'url_notification.type' (TYPE_ENUM) Użytkownik ustawił typ powiadomienia inny niż URL_REMOVED lub URL_UPDATED.

FORBIDDEN (403)

Komunikat o błędzie Opis
Permission denied. Failed to verify the URL ownership. Użytkownik nie ukończył procesu weryfikacji własności lub próbuje zaktualizować adres URL, który nie jest jego własnością.

TOO_MANY_REQUESTS (429)

Komunikat o błędzie Opis
Insufficient tokens for quota 'indexing.googleapis.com/default_requests' Użytkownik przekracza limit wykorzystania interfejsu Indexing API.