W tym artykule znajdziesz opis metod i atrybutów klienta w JavaScript, które będziesz wykorzystywać do implementacji funkcji logowania w Google w swoich aplikacjach internetowych.
Jeśli napotkasz jakiś problem podczas korzystania z biblioteki, zgłoś go w naszym repozytorium GitHub. .
Konfiguracja uwierzytelniania
Wczytaj bibliotekę platformy interfejsów API Google, aby utworzyć obiekt gapi:
<script src="https://apis.google.com/js/platform.js?onload=init" async defer></script>
Po załadowaniu biblioteki platformy załaduj bibliotekę auth2:
function init() {
  gapi.load('auth2', function() {
    /* Ready. Make a call to gapi.auth2.init or some other API */
  });
}
gapi.auth2.init(params)
Inicjuje obiekt GoogleAuth. Musisz wywołać tę metodę przed wywołaniem metod gapi.auth2.GoogleAuth.
Podczas inicjowania obiektu GoogleAuth konfigurujesz go, podając identyfikator klienta OAuth 2.0 i opcjonalnie inne opcje. Jeśli użytkownik jest już zalogowany, obiekt GoogleAuth przywraca stan logowania z poprzedniej sesji.
| Argumenty | |
|---|---|
| params | Obiekt zawierający pary klucz-wartość danych konfiguracji klienta. Różne właściwości, które można skonfigurować, znajdziesz w sekcji gapi.auth2.ClientConfig. Na przykład:{
  client_id: 'CLIENT_ID.apps.googleusercontent.com'
} | 
| Zwroty | |
|---|---|
| gapi.auth2.GoogleAuth | Obiekt gapi.auth2.GoogleAuth. Aby uzyskać obietnicę, która zostanie spełniona po zakończeniu inicjalizacji obiektugapi.auth2.GoogleAuth, użyj metody then(). | 
GoogleAuth.then(onInit, onError)
Funkcja onInit jest wywoływana, gdy obiekt GoogleAuth jest w pełni zainicjowany. Jeśli podczas inicjowania wystąpi błąd (może się to zdarzyć w starszych, nieobsługiwanych przez Google Chrome, przeglądarkach), zamiast tego zostanie wywołana funkcja onError.
| Argumenty | |
|---|---|
| onInit | Funkcja wywoływana z obiektem GoogleAuth, gdy jest w pełni zainicjowana. | 
| onError | Funkcja wywołana z obiektem zawierającym właściwość error, jeśli nie udało się zainicjowaćGoogleAuth. | 
| Zwroty | |
|---|---|
| Obietnica | Obietnica Promise, która jest spełniona, gdy funkcja onInit zakończyła działanie, lub odrzucona, jeśli wystąpił błąd inicjalizacji. Jest ona obliczana na podstawie wartości zwróconej przez funkcję onInit (jeśli taka istnieje). | 
Kody błędów
- idpiframe_initialization_failed
- Nie udało się zainicjować wymaganego elementu iframe od Google, na przykład z powodu nieobsługiwanego środowiska. Właściwość detailszawiera więcej informacji o wystąpił błąd.
gapi.auth2.ClientConfig
Interfejs przedstawiający różne parametry konfiguracji metody gapi.auth2.init.
| Parametry | ||
|---|---|---|
| client_id | string | Wymagany. Identyfikator klienta aplikacji utworzony w Konsoli interfejsów API Google. | 
| cookie_policy | string | Domeny, w których chcesz utworzyć pliki cookie logowania. Może to być identyfikator URI, single_host_originlubnone. Jeśli nie zostanie podana, przyjmuje domyślniesingle_host_origin. | 
| scope | string | Zakresy, o które chcesz poprosić, jako ciąg oddzielony spacjami. Opcjonalne, jeśli parametr fetch_basic_profilenie ma wartości false. | 
| fetch_basic_profile | boolean | Pobieranie podstawowych informacji z profilu użytkownika, gdy ten loguje się w aplikacji. Dodaje do żądanych zakresów zakresy „profile”, „email” i „openid”. Wartość „prawda”, jeśli nie podano inaczej. | 
| hosted_domain | string | Domena G Suite, do której użytkownicy muszą należeć, aby się zalogować. Może ona ulec zmianie przez klientów, dlatego upewnij się, że zwracany użytkownik ma zweryfikowaną usługę domeny hostowanej. Użyj metody GoogleUser.getHostedDomain() na kliencie i zawartości oświadczenia hdw tokenie ID na serwerze, aby sprawdzić, czy domena jest taka, jaką chcesz. | 
| use_fedcm | boolean | Opcjonalna, domyślnie True. Włącz lub wyłącz używanie interfejsów API FedCM w przeglądarce podczas logowania. | 
| ux_mode | string | Tryb UX używany w procesie logowania. Domyślnie proces wyrażania zgody otworzy się w wyskakującym okienku. Prawidłowe wartości to popupiredirect. | 
| redirect_uri | string | Jeśli używasz parametru ux_mode='redirect', ten parametr umożliwia zastąpienie domyślnego parametruredirect_uri, który będzie używany na końcu procesu uzyskiwania zgody. Domyślna wartośćredirect_urito bieżący adres URL pozbawiony parametrów zapytania i fragmentu szyfrującego. | 
| enable_granular_consent | boolean | Opcjonalnie: Czy włączyć szczegółowe uprawnienia. Jeśli ustawisz wartość false, bardziej szczegółowe uprawnienia konta Google zostaną wyłączone w przypadku identyfikatorów klienta OAuth utworzonych przed 2019 r.  Nie ma to wpływu na identyfikatory klienta OAuth utworzone w 2019 r. lub później, ponieważ w ich przypadku zawsze są włączone bardziej szczegółowe uprawnienia. | 
| plugin_name | string | Opcjonalnie: Dotyczy to tylko identyfikatorów klientów utworzonych przed 3 marca 2025 r. W innych przypadkach nie ma to żadnego wpływu.
      Umożliwia dotychczasowym aplikacjom internetowym dalsze korzystanie z Google Platform Library.
      Domyślnie nowo utworzone identyfikatory klienta nie mogą korzystać z biblioteki Platform Library. Zamiast niej należy używać nowszej biblioteki Google Identity Services. Możesz wybrać dowolną wartość. Zalecamy, aby była to nazwa opisowa, np. nazwa produktu lub wtyczki. Przykład: plugin_name: 'YOUR_STRING_HERE' | 
Uwierzytelnianie
GoogleAuth to klasa singleton, która udostępnia metody umożliwiające użytkownikowi zalogowanie się na konto Google, uzyskanie bieżącego stanu logowania użytkownika, uzyskanie określonych danych z profilu Google użytkownika, żądanie dodatkowych zakresów uprawnień oraz wylogowanie z bieżącego konta.
gapi.auth2.getAuthInstance()
Zwraca obiekt GoogleAuth. Przed wywołaniem tej metody musisz zainicjować obiekt GoogleAuth za pomocą funkcji gapi.auth2.init().
| Zwroty | |
|---|---|
| gapi.auth2.GoogleAuth | Obiekt gapi.auth2.GoogleAuth. Używaj tego obiektu do wywoływania metodgapi.auth2.GoogleAuth. | 
GoogleAuth.isSignedIn.get()
Zwraca informację, czy bieżący użytkownik jest zalogowany.
| Zwroty | |
|---|---|
| Wartość logiczna | true, jeśli użytkownik jest zalogowany, lubfalse, jeśli użytkownik jest wylogowany lub obiektGoogleAuthnie został zainicjowany. | 
GoogleAuth.isSignedIn.listen(listener)
Słuchaj zmian w stanie logowania bieżącego użytkownika.
| Argumenty | |
|---|---|
| listener | Funkcja przyjmująca wartość logiczną. listen()przekazujetruedo tej funkcji, gdy użytkownik się zaloguje, orazfalsegdy się wyloguje. | 
GoogleAuth.signIn()
Loguje użytkownika z opcjami określonymi w opcji gapi.auth2.init().
| Zwroty | |
|---|---|
| Obietnica | Promise, który jest wypełniany instancjąGoogleUser, gdy użytkownik pomyślnie uwierzytelnia się i przyznaje żądane zakresy, lub odrzucany z obiektem zawierającym właściwośćerror, jeśli wystąpił błąd. Kody błędów znajdziesz w następnej sekcji. | 
Kody błędów
Zobacz GoogleAuth.signIn(options).
GoogleAuth.signIn(options)
Loguje użytkownika za pomocą określonych opcji.
| Argumenty | |
|---|---|
| options | Wykonaj 1 z tych czynności: 
 | 
| Zwroty | |
|---|---|
| Obietnica | Promise, który jest wypełniany za pomocą instancjiGoogleUser, gdy użytkownik poprawnie uwierzytelnia się i przyznaje żądane zakresy, lub odrzucany z obiektem zawierającym właściwośćerror, jeśli wystąpił błąd (kody błędów znajdziesz poniżej). | 
Kody błędów
- popup_closed_by_user
- Użytkownik zamknął wyskakujące okienko przed zakończeniem procesu logowania.
- access_denied
- Użytkownik odmówił udzielenia uprawnień do wymaganych zakresów.
- immediate_failed
- Nie można automatycznie wybrać żadnego użytkownika bez wyświetlenia procesu uzyskiwania zgody. Wystąpił błąd podczas korzystania z opcji signInz opcjąprompt: 'none'. Nie powinno być to konieczne, ponieważgapi.auth2.initautomatycznie zaloguje użytkownika, jeśli był on zalogowany w poprzedniej sesji.
gapi.auth2.SignInOptions
Interfejs przedstawiający różne parametry konfiguracji metody GoogleAuth.signIn(options).
| Parametry | ||
|---|---|---|
| prompt | string | Wymusza określony tryb procesu uzyskiwania zgody. Opcjonalnie: Możliwe wartości to: 
 | 
| scope | string | Zakresy, o które należy poprosić, jako ciąg znaków oddzielonych spacjami, na podstawie zakresów zdefiniowanych w parametrach gapi.auth2.init. Opcjonalne, jeślifetch_basic_profilenie jest ustawiony na wartość fałsz. | 
| ux_mode | string | Tryb UX używany w procesie logowania. Domyślnie proces wyrażania zgody otworzy się w wyskakującym okienku. Prawidłowe wartości to popupiredirect. | 
| redirect_uri | string | Jeśli używasz parametru ux_mode='redirect', możesz za jego pomocą zastąpić domyślny parametrredirect_uri, który będzie używany na końcu procesu uzyskiwania zgody. Domyślna wartośćredirect_urito bieżący adres URL pozbawiony parametrów zapytania i fragmentu szyfrującego. | 
GoogleAuth.signOut()
Wyloguje bieżące konto z aplikacji.
| Zwroty | |
|---|---|
| Obietnica | Promise, które jest wykonywane po wylogowaniu użytkownika. | 
GoogleAuth.disconnect()
Unieważnia wszystkie uprawnienia przyznane przez użytkownika.
GoogleAuth.grantOfflineAccess(options)
Uzyskaj od użytkownika zgodę na dostęp do określonych zakresów offline.
| Argumenty | |
|---|---|
| options | Obiekt gapi.auth2.OfflineAccessOptionszawierający pary klucz-wartość parametrów. Na przykład:{
  scope: 'profile email'
} | 
| Zwroty | |
|---|---|
| Obietnica | Promise, który jest realizowany, gdy użytkownik przyzna wymagane uprawnienia, przekazując obiekt zawierający kod autoryzacji do modułu obsługi realizacjiPromise.
    Na przykład:auth2.grantOfflineAccess().then(function(resp) { var auth_code = resp.code; }); | 
Kody błędów
- popup_closed_by_user
- Użytkownik zamknął wyskakujące okienko, zanim proces uzyskiwania zgody został zakończony.
- access_denied
- Użytkownik odmówił udzielenia uprawnień do wymaganych zakresów.
- immediate_failed
- Nie można automatycznie wybrać żadnego użytkownika bez wyświetlenia procesu uzyskiwania zgody. Wystąpił błąd podczas korzystania z opcji signInz opcjąprompt: 'none'. Nie powinno być to konieczne, ponieważgapi.auth2.initautomatycznie zaloguje użytkownika, jeśli był on zalogowany w poprzedniej sesji.
gapi.auth2.OfflineAccessOptions
Interfejs przedstawiający różne parametry konfiguracji metody 
GoogleAuth.grantOfflineAccess(options).
| Parametry | ||
|---|---|---|
| prompt | string | Wymusza określony tryb procesu uzyskiwania zgody. Opcjonalnie: Możliwe wartości to: 
 | 
| scope | string | Zakresy, o które należy poprosić, jako ciąg znaków oddzielonych spacjami, na podstawie zakresów zdefiniowanych w parametrach gapi.auth2.init. Opcjonalne, jeślifetch_basic_profilenie jest ustawiony na wartość fałsz. | 
GoogleAuth.attachClickHandler(container, options, onsuccess, onfailure)
Przyłącza proces logowania do obsługi kliknięcia w określonym kontenerze.
| Argumenty | |
|---|---|
| container | Identyfikator lub odwołanie do elementu div, do którego ma zostać dołączony moduł obsługi kliknięcia. | 
| options | Obiekt zawierający pary klucz-wartość parametrów. Zobacz GoogleAuth.signIn(). | 
| onsuccess | Funkcja do wywołania po zakończeniu logowania. | 
| onfailure | Funkcja do wywołania, jeśli logowanie się nie powiedzie. | 
Użytkownicy
Obiekt GoogleUser reprezentuje jedno konto użytkownika. Obiekty GoogleUser są zwykle uzyskiwane przez wywołanie metody GoogleAuth.currentUser.get().
GoogleAuth.currentUser.get()
Zwraca obiekt GoogleUser, który reprezentuje bieżącego użytkownika. Pamiętaj, że w nowo zainicjowanej instancji GoogleAuth bieżący użytkownik nie został jeszcze ustawiony. Aby uzyskać zainicjowany obiekt GoogleAuth, użyj metody currentUser.listen() lub GoogleAuth.then().
| Zwroty | |
|---|---|
| GoogleUser | bieżący użytkownik, | 
GoogleAuth.currentUser.listen(listener)
Nasłuchiwanie zmian w currentUser.
| Argumenty | |
|---|---|
| listener | Funkcja, która przyjmuje parametr GoogleUser.listenprzekazuje tej funkcji instancjęGoogleUserprzy każdej zmianie, która modyfikujecurrentUser. | 
GoogleUser.getId()
Pobierz unikalny ciąg znaków identyfikatora użytkownika.
| Zwroty | |
|---|---|
| Ciąg znaków | Unikalny identyfikator użytkownika | 
GoogleUser.isSignedIn()
Zwraca wartość „prawda”, jeśli użytkownik jest zalogowany.
| Zwroty | |
|---|---|
| Wartość logiczna | Prawda, jeśli użytkownik jest zalogowany | 
GoogleUser.getHostedDomain()
Uzyskaj domenę G Suite użytkownika, jeśli zalogował się on na konto G Suite.
| Zwroty | |
|---|---|
| Ciąg znaków | Domena G Suite użytkownika | 
GoogleUser.getGrantedScopes()
Pobierz zakresy przyznane przez użytkownika jako ciąg znaków rozdzielony spacjami.
| Zwroty | |
|---|---|
| Ciąg znaków | Zakresy przyznane przez użytkownika | 
GoogleUser.getBasicProfile()
Uzyskaj podstawowe informacje o profilu użytkownika.
| Zwroty | |
|---|---|
| gapi.auth2.BasicProfile | Właściwości gapi.auth2.BasicProfilemożesz pobrać za pomocą tych metod:
 | 
GoogleUser.getAuthResponse(includeAuthorizationData)
Pobierz obiekt odpowiedzi z sesji uwierzytelniania użytkownika.
| Argumenty | |
|---|---|
| includeAuthorizationData | Opcjonalnie: wartość logiczna określająca, czy zawsze zwracać token dostępu i zakresy. Domyślnie token dostępu i żądane zakresy nie są zwracane, gdy fetch_basic_profilema wartość true (wartość domyślna) i nie są wymagane żadne dodatkowe zakresy. | 
| Zwroty | |
|---|---|
| gapi.auth2.AuthResponse | Obiekt gapi.auth2.AuthResponse. | 
GoogleUser.reloadAuthResponse()
Wymusza odświeżenie tokena dostępu, a następnie zwraca obietnicę dla nowej odpowiedzi AuthResponse.
| Zwroty | |
|---|---|
| Promise | Promise, który jest realizowany za pomocą załadowanego ponowniegapi.auth2.AuthResponse, gdy nastąpiło ponowne załadowanie tokena OAuth. | 
gapi.auth2.AuthResponse
  Odpowiedź zwracana przez metody GoogleUser.getAuthResponse(includeAuthorizationData) lub GoogleUser.reloadAuthResponse().
| Właściwości | ||
|---|---|---|
| access_token | string | Token dostępu przyznany. | 
| id_token | string | Przyznany token identyfikacyjny. | 
| scope | string | Zakresy przyznawane w tokenie dostępu. | 
| expires_in | number | Liczba sekund do wygaśnięcia tokena dostępu. | 
| first_issued_at | number | Znak czasu, w którym użytkownik po raz pierwszy przyznał żądane uprawnienia. | 
| expires_at | number | Sygnatura czasowa, w której token dostępu wygaśnie. | 
GoogleUser.hasGrantedScopes(scopes)
Zwraca wartość „prawda”, jeśli użytkownik przyznał określone uprawnienia.
| Argumenty | |
|---|---|
| scopes | Rozdzielany spacjami ciąg znaków zakresów. | 
| Zwroty | |
|---|---|
| Wartość logiczna | Wartość true, jeśli zakresy zostały przyznane | 
GoogleUser.grant(options)
Poproś użytkownika o dodatkowe uprawnienia.
Aby poznać listę parametrów i kod błędu, zapoznaj się z artykułem GoogleAuth.signIn().
GoogleUser.grantOfflineAccess(options)
Uzyskaj od użytkownika zgodę na dostęp do określonych zakresów offline.
| Argumenty | |
|---|---|
| options | Obiekt gapi.auth2.OfflineAccessOptionszawierający pary klucz-wartość parametrów. Na przykład:{
  scope: 'profile email'
} | 
GoogleUser.disconnect()
Unieważnia wszystkie zakresy przyznane przez użytkownika aplikacji.
Elementy interfejsu
gapi.signin2.render(id, options)
Wyświetla przycisk logowania w elemencie o danym identyfikatorze, używając ustawień określonych przez obiekt options.
| Argumenty | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| id | Identyfikator elementu, w którym ma być renderowany przycisk logowania. | ||||||||||||||||
| options | Obiekt zawierający ustawienia używane do renderowania przycisku. Na przykład: {
  scope: 'email',
  width: 200,
  height: 50,
  longtitle: true,
  theme: 'dark',
  onsuccess: handleSuccess,
  onfailure: handleFailure
}
 | ||||||||||||||||
Zaawansowane
gapi.auth2.authorize(params, callback)
Przeprowadza jednorazową autoryzację OAuth 2.0. W zależności od użytych parametrów otworzy to wyskakujące okienko logowania w Google lub spróbuje pobrać żądaną odpowiedź bez interakcji z użytkownikiem.
Oto kilka przykładów zastosowań, w których ta metoda jest przydatna:
- Aplikacja musi tylko raz wysłać żądanie do punktu końcowego interfejsu Google API, aby na przykład załadować ulubione filmy użytkownika w YouTube przy pierwszym logowaniu.
- Twoja aplikacja ma własną infrastrukturę zarządzania sesjami i wymaga użycia tokena ID tylko raz, aby zidentyfikować użytkownika na serwerze.
- Na tej samej stronie używasz kilku identyfikatorów klienta.
| Argumenty | |
|---|---|
| params | Obiekt zawierający pary klucz-wartość danych konfiguracyjnych. Różne właściwości, które można skonfigurować, znajdziesz w sekcji gapi.auth2.AuthorizeConfig. Na przykład:{ client_id: 'CLIENT_ID.apps.googleusercontent.com', scope: 'email profile openid', response_type: 'id_token permission' } | 
| callback | Funkcja wywoływana z obiektem gapi.auth2.AuthorizeResponsepo zakończeniu żądania (z pomyślnym lub niepomyślnym wynikiem). | 
Przykład
gapi.auth2.authorize({
  client_id: 'CLIENT_ID.apps.googleusercontent.com',
  scope: 'email profile openid',
  response_type: 'id_token permission'
}, function(response) {
  if (response.error) {
    // An error happened!
    return;
  }
  // The user authorized the application for the scopes requested.
  var accessToken = response.access_token;
  var idToken = response.id_token;
  // You can also now use gapi.client to perform authenticated requests.
});
Kody błędów
- idpiframe_initialization_failed
- Nie udało się zainicjować wymaganego elementu iframe od Google, na przykład z powodu nieobsługiwanego środowiska. Właściwość detailszawiera więcej informacji o wystąpił błąd.
- popup_closed_by_user
- Użytkownik zamknął wyskakujące okienko przed zakończeniem procesu logowania.
- access_denied
- Użytkownik odmówił udzielenia uprawnień do wymaganych zakresów.
- immediate_failed
- Nie można automatycznie wybrać żadnego użytkownika bez wyświetlenia procesu uzyskiwania zgody. Wystąpił błąd podczas korzystania z opcji signInz opcjąprompt: 'none'.
gapi.auth2.AuthorizeConfig
Interfejs przedstawiający różne parametry konfiguracji metody gapi.auth2.authorize.
| Właściwości | ||
|---|---|---|
| client_id | string | Wymagany. Identyfikator klienta aplikacji utworzony w Konsoli interfejsów API Google. | 
| scope | string | Wymagany. Zakresy, o które chcesz poprosić, jako ciąg oddzielony spacjami. | 
| response_type | string | Lista rozdzielonych spacjami typów odpowiedzi. Domyślna wartość to 'permission'. Możliwe wartości:
 | 
| prompt | string | Wymusza określony tryb procesu uzyskiwania zgody. Możliwe wartości: 
 | 
| cookie_policy | string | Domeny, w których chcesz utworzyć pliki cookie logowania. Może to być identyfikator URI, single_host_originlubnone. Jeśli nie zostanie podana, przyjmuje domyślniesingle_host_origin. | 
| hosted_domain | string | Domena G Suite, do której użytkownicy muszą należeć, aby się zalogować. Te informacje mogą być modyfikowane przez klientów, dlatego należy zweryfikować domenę hostowaną przez zwróconego użytkownika. | 
| login_hint | string | Adres e-mail lub identyfikator użytkownika, który ma być wstępnie wybrany w procesie logowania. Użytkownik może zmienić tę wartość, chyba że użyje opcji prompt: "none". | 
| include_granted_scopes | boolean | Określa, czy żądać tokena dostępu, który obejmuje wszystkie uprawnienia przyznane wcześniej przez użytkownika aplikacji, czy tylko uprawnienia wymagane w bieżącym wywołaniu. Domyślna wartość to true. | 
| enable_granular_consent | boolean | Opcjonalnie: Czy włączyć szczegółowe uprawnienia. Jeśli ustawisz wartość false, bardziej szczegółowe uprawnienia konta Google zostaną wyłączone w przypadku identyfikatorów klienta OAuth utworzonych przed 2019 r. Nie ma to wpływu na identyfikatory klienta OAuth utworzone w 2019 r. lub później, ponieważ w ich przypadku zawsze są włączone bardziej szczegółowe uprawnienia. | 
| plugin_name | string | Opcjonalnie: Dotyczy to tylko identyfikatorów klientów utworzonych przed 3 marca 2025 r. W innych przypadkach nie ma to żadnego wpływu.
      Umożliwia dotychczasowym aplikacjom internetowym dalsze korzystanie z Google Platform Library.
      Domyślnie nowo utworzone identyfikatory klienta nie mogą korzystać z biblioteki Platform Library. Zamiast niej należy używać nowszej biblioteki Google Identity Services. Możesz wybrać dowolną wartość. Zalecamy, aby była to nazwa opisowa, np. nazwa produktu lub wtyczki. Przykład: plugin_name: 'YOUR_STRING_HERE' | 
gapi.auth2.AuthorizeResponse
Odpowiedź zwrócona do metody wywołania funkcji gapi.auth2.authorize.
| Właściwości | ||
|---|---|---|
| access_token | string | Token dostępu przyznany. Występuje tylko wtedy, gdy w elementach response_typepodano wartościpermissionlubtoken. | 
| id_token | string | Przyznany token identyfikacyjny. Widoczny tylko wtedy, gdy w elemencie response_typepodano wartośćid_token. | 
| code | string | Przyznany kod autoryzacji. Widoczny tylko wtedy, gdy w elemencie response_typepodano wartośćcode. | 
| scope | string | Zakresy przyznawane w tokenie dostępu. Występuje tylko wtedy, gdy w elementach response_typepodano wartościpermissionlubtoken. | 
| expires_in | number | Liczba sekund do wygaśnięcia tokena dostępu. Występuje tylko wtedy, gdy w elementach response_typepodano wartościpermissionlubtoken. | 
| first_issued_at | number | Znak czasu, w którym użytkownik po raz pierwszy przyznał żądane uprawnienia. Występuje tylko wtedy, gdy w elementach response_typepodano wartościpermissionlubtoken. | 
| expires_at | number | Sygnatura czasowa, w której token dostępu wygaśnie. Występuje tylko wtedy, gdy w elementach response_typepodano wartościpermissionlubtoken. | 
| error | string | Jeśli żądanie nie zostało zrealizowane, zawiera kod błędu. | 
| error_subtype | string | Jeśli żądanie się nie powiedzie, może zawierać dodatkowe informacje o kodzie błędu. |