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 podczas korzystania z biblioteki napotkasz jakiś problem, 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 wczytaniu biblioteki platformy wczytaj 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
.
Po zainicjowaniu obiektu GoogleAuth
skonfigurujesz go za pomocą identyfikatora klienta OAuth 2.0 i wszelkich dodatkowych opcji, które chcesz określić. Następnie, jeśli użytkownik zalogował się, obiekt GoogleAuth
przywraca stan logowania użytkownika z poprzedniej sesji.
Argumenty | |
---|---|
params |
Obiekt zawierający pary klucz-wartość z danymi konfiguracyjnymi 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 obiektu gapi.auth2.GoogleAuth , użyj metody then().
|
GoogleAuth.then(onInit, onError)
Wywołuje funkcję onInit, 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’a), zamiast tego zostanie wywołana funkcja onError.
Argumenty | |
---|---|
onInit |
Funkcja jest wywoływana za pomocą obiektu GoogleAuth po jego pełnym zainicjowaniu.
|
onError |
Jeśli nie udało się zainicjować funkcji GoogleAuth , funkcja jest wywoływana za pomocą obiektu zawierającego właściwość error .
|
Zwroty | |
---|---|
Obietnica | Obietku Promise , który jest spełniony, gdy funkcja onInit zakończyła działanie, lub odrzucony, 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, np. z powodu nieobsługiwanego środowiska. Właściwość
details
podaje więcej informacji o zgłoszonym błędzie.
gapi.auth2.ClientConfig
Interfejs przedstawiający różne parametry konfiguracji metody gapi.auth2.init
.
Parametry | ||
---|---|---|
client_id |
string |
Wymagany. Identyfikator klienta aplikacji znaleziony i utworzony w Konsoli interfejsów API Google. |
cookie_policy |
string |
Domeny, w których mają być tworzone pliki cookie logowania. Może to być identyfikator URI, single_host_origin lub none . Jeśli nie zostanie podana, przyjmuje domyślnie single_host_origin . |
scope |
string |
Zakresy, o które chcesz poprosić, jako ciąg oddzielony spacjami. Opcjonalne, jeśli fetch_basic_profile nie ma wartości Fałsz. |
fetch_basic_profile |
boolean |
Pobieranie podstawowych informacji o profilu użytkownika podczas logowania. Dodaje „profile”, „email” i „openid” do żądanych zakresów. 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 polecenia GoogleUser.getHostedDomain() na koncie klienta i deklaracji hd w tokenie identyfikatora na serwerze, aby sprawdzić, czy domena jest zgodna z oczekiwaniami.
|
use_fedcm |
boolean |
Opcjonalna, domyślnie True . Włącz lub wyłącz używanie interfejsów API FedCM przeglądarki podczas logowania. |
ux_mode |
string |
Tryb interfejsu użytkownika, który ma być używany w procesie logowania. Domyślnie proces wyrażania zgody zostanie otwarty w wyskakującym okienku. Prawidłowe wartości to popup i redirect . |
redirect_uri |
string |
Jeśli korzystasz z metody ux_mode='redirect' , ten parametr umożliwia zastąpienie domyślnej wartości redirect_uri , która będzie używana na końcu procesu uzyskiwania zgody. Domyślnie redirect_uri to bieżący adres URL bez parametrów zapytania i fragmentu z krzyżykiem.
|
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: Jeśli ta wartość jest ustawiona, nowe identyfikatory klienta utworzone przed 29 lipca 2022 r. mogą korzystać ze starszej wersji biblioteki Google Platform.
Domyślnie nowo utworzone identyfikatory klienta nie mogą już korzystać z biblioteki Platformy, lecz muszą używać nowszej biblioteki Google Identity Services. Możesz wybrać dowolną wartość, ale zalecamy podanie nazwy opisowej, np. nazwy 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 metod gapi.auth2.GoogleAuth .
|
GoogleAuth.isSignedIn.get()
Zwraca informację, czy bieżący użytkownik jest zalogowany.
Zwroty | |
---|---|
Wartość logiczna |
true , jeśli użytkownik jest zalogowany, lub false , jeśli użytkownik jest wylogowany lub obiekt GoogleAuth nie został zainicjowany.
|
GoogleAuth.isSignedIn.listen(listener)
Słuchaj zmian w stanie logowania bieżącego użytkownika.
Argumenty | |
---|---|
listener |
Funkcja, która przyjmuje wartość logiczną. Funkcja listen() przekazuje do tej funkcji true , gdy użytkownik się loguje, i false , gdy użytkownik się wyloguje.
|
GoogleAuth.signIn()
Loguje użytkownika z opcjami określonymi w 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 przy użyciu określonych opcji.
Argumenty | |
---|---|
options |
Wykonaj 1 z tych czynności:
|
Zwroty | |
---|---|
Obietnica | Pole Promise realizowane za pomocą instancji GoogleUser , gdy użytkownik uwierzytelnia się i przydziela żądane zakresy, lub odrzucane za pomocą obiektu zawierającego właściwość error w przypadku błędu (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ł przyznania 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
signIn
z opcjąprompt: 'none'
. Tej opcji nie należy używać, ponieważgapi.auth2.init
automatycznie zaloguje użytkownika w trakcie poprzedniej sesji.
gapi.auth2.SignInOptions
Interfejs przedstawiający różne parametry konfiguracji metody GoogleAuth.signIn(options)
.
Parametry | ||
---|---|---|
prompt |
string |
Wymusza określony tryb przepływu danych w celu uzyskania 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śli fetch_basic_profile nie ma wartości Fałsz.
|
ux_mode |
string |
Tryb UX używany w procesie logowania. Domyślnie otworzy się wyskakujące okienko z prośbą o zgodę na wykorzystanie danych. Prawidłowe wartości to popup i redirect . |
redirect_uri |
string |
Jeśli używasz parametru ux_mode='redirect' , możesz za jego pomocą zastąpić domyślny parametr redirect_uri , który będzie używany na końcu procesu uzyskiwania zgody. Domyślna wartość redirect_uri to bieżący adres URL pozbawiony parametrów zapytania i fragmentu szyfrującego.
|
GoogleAuth.signOut()
Wylogowuje bieżące konto z aplikacji.
Zwroty | |
---|---|
Obietnica | Pole Promise , które jest wypełniane, gdy użytkownik zostanie wylogowany. |
GoogleAuth.disconnect()
Unieważnia wszystkie zakresy 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.OfflineAccessOptions zawierają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 realizacji Promise .
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 przed ukończeniem procesu uzyskiwania zgody.
access_denied
- Użytkownik odmówił przyznania 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
signIn
z opcjąprompt: 'none'
. Nie powinno być to konieczne, ponieważgapi.auth2.init
automatycznie 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 przepływu danych w celu uzyskania zgody. Opcjonalnie: Możliwe wartości to:
|
scope |
string |
Zakresy, do których ma być wysyłane żądanie, w postaci ciągu rozdzielanego spacjami oprócz zakresów zdefiniowanych w parametrach gapi.auth2.init . Opcjonalne, jeśli fetch_basic_profile nie 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. Patrz GoogleAuth.signIn(). |
onsuccess | Funkcja do wywołania po zakończeniu logowania. |
onfailure | Funkcja, która zostanie wywołana w przypadku niepowodzenia logowania. |
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ć zainicjowaną instancję 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 .
listen przekazuje tej funkcji instancję GoogleUser przy każdej zmianie, która modyfikuje currentUser .
|
GoogleUser.getId()
Uzyskaj 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.BasicProfile moż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_profile ma wartość prawda (wartość domyślna) i nie są wysyłane żadne dodatkowe zakresy. |
Zwroty | |
---|---|
gapi.auth2.AuthResponse |
Obiekt gapi.auth2.AuthResponse . |
GoogleUser.reloadAuthResponse()
Wymusza odświeżenie tokenu dostępu, a następnie zwraca obietnicę dotyczącą 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 |
Przyznano token dostępu. |
id_token |
string |
Przyznany token identyfikacyjny. |
scope |
string |
Zakresy przyznane 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 określająca, kiedy 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 | Prawda, 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 uprawnienia do dostępu do określonych zakresów offline.
Argumenty | |
---|---|
options |
Obiekt gapi.auth2.OfflineAccessOptions zawierający pary klucz-wartość parametrów. Na przykład: { scope: 'profile email' } |
GoogleUser.disconnect()
Unieważnia wszystkie zakresy, które użytkownik przyznał aplikacji.
Elementy interfejsu
gapi.signin2.render(id, options)
Renderuje przycisk logowania w elemencie o podanym identyfikatorze z użyciem 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.
Metoda ta przydaje się między innymi w tych przypadkach:
- Aplikacja wysyła żądanie do punktu końcowego interfejsu API Google tylko raz, aby na przykład wczytać 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.AuthorizeResponse po zakończeniu żądania (z sukcesem lub niepowodzeniem).
|
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ść
details
zawiera więcej informacji o wystąpił błąd. popup_closed_by_user
- Użytkownik zamknął wyskakujące okienko przed ukończeniem procesu logowania.
access_denied
- Użytkownik odmówił przyznania uprawnień do wymaganych zakresów.
immediate_failed
-
Bez pytania o zgodę nie można wybrać żadnego użytkownika automatycznie. Podczas używania polecenia
signIn
z opcjąprompt: 'none'
wystąpił błąd.
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 przepływu danych w celu uzyskania 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_origin lub none . Jeśli nie określono inaczej, domyślna wartość to single_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 zakresy przyznane wcześniej przez użytkownika aplikacji, czy tylko zakresy żądane 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: Jeśli została ustawiona, identyfikatory klientów utworzone przed 29 lipca 2022 r. mogą korzystać z biblioteki Google Platform. Domyślnie nowo utworzone identyfikatory klienta nie mogą korzystać z biblioteki Platformy. Zamiast tego muszą używać nowszej biblioteki Google Identity Services. Możesz wybrać dowolną wartość. Zalecamy użycie nazwy opisowej, na przykład nazwy produktu lub wtyczki, która ułatwi identyfikację.
Przykład: plugin_name: 'YOUR_STRING_HERE'
|
gapi.auth2.AuthorizeResponse
Odpowiedź zwrócona do metody wywołania gapi.auth2.authorize
.
Właściwości | ||
---|---|---|
access_token |
string |
Token dostępu przyznany. Występuje tylko wtedy, gdy w elementach response_type podano wartości permission lub token .
|
id_token |
string |
Przyznany token identyfikacyjny. Widoczny tylko wtedy, gdy w elemencie response_type podano wartość id_token .
|
code |
string |
Przyznany kod autoryzacji. Widoczny tylko wtedy, gdy w elemencie response_type podano wartość code .
|
scope |
string |
Zakresy przyznane w tokenie dostępu. Występuje tylko wtedy, gdy w elementach response_type podano wartości permission lub token .
|
expires_in |
number |
Liczba sekund do wygaśnięcia tokena dostępu. Występuje tylko wtedy, gdy w elementach response_type podano wartości permission lub token .
|
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_type podano wartości permission lub token .
|
expires_at |
number |
Sygnatura czasowa określająca, kiedy token dostępu wygaśnie. Jest obecny tylko wtedy, gdy w elementach response_type podano wartości permission lub token .
|
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. |