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 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
.
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 . 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 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 | |
---|---|
Obietnice | Obiet natywny 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, na przykład z powodu nieobsługiwanego środowiska. Właściwość
details
zawiera 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 mają być tworzone pliki cookie logowania. Może to być identyfikator URI, single_host_origin lub none . 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_profile nie ma wartości fałsz. |
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ć. Ta wartość może być modyfikowana przez klientów, dlatego pamiętaj, aby zweryfikować domenę hostowaną użytkownika, który został zwrócony. Użyj metody GoogleUser.getHostedDomain() na kliencie i zawartości oświadczenia hd w 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 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 używasz parametru ux_mode='redirect' , ten parametr umożliwia zastąpienie domyślnego parametru redirect_uri , który będzie używany na końcu procesu uzyskiwania zgody. Wartość domyślna redirect_uri to obecny 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: 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, takiej jak 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 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 zwracająca wartość logiczną. listen() przekazuje
true do tej funkcji, gdy użytkownik się zaloguje, oraz
false gdy 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 jedną z tych czynności:
|
Zwroty | |
---|---|
Obietnice | Promise , który jest wypełniany za pomocą instancji GoogleUser , 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
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.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 jest ustawiony na wartość fałsz.
|
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 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()
Wyloguje bieżące konto z aplikacji.
Zwroty | |
---|---|
Obietnica | Promise , które jest realizowane 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.OfflineAccessOptions zawierający pary klucz-wartość parametrów. 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 .
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
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, 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 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 zalogowanie się nie powiedzie się. |
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 z 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ść true (wartość domyślna) i nie są żądane ż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ę dotyczącą nowej odpowiedzi AuthResponse.
Zwroty | |
---|---|
Promise |
Promise , który jest realizowany po ponownym załadowaniu gapi.auth2.AuthResponse , gdy proces ponownego wczytywania tokena OAuth został już zakończony.
|
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 | 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 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' } |
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 }Możesz określić te opcje:
|
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 . 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 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
signIn
z 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 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 zostanie podany, przyjmuje domyślnie 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żyjesz parametru 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 klientów 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 opcja jest ustawiona, identyfikatory klienta 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, aby w celu ułatwienia identyfikacji była to nazwa produktu lub wtyczki.
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 przyznawane 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. Jest obecny 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, w której 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. |