W tym artykule znajdziesz opis metod i atrybutów klienta JavaScript, których będziesz używać do implementacji Logowania przez 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 jej wywołaniem metod gapi.auth2.GoogleAuth
.
Po zainicjowaniu obiektu GoogleAuth
konfigurujesz go przy użyciu identyfikatora klienta OAuth 2.0 i wszelkich dodatkowych opcji, które chcesz określić. Następnie, jeśli użytkownik był już zalogowany, 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 . Przykład: { client_id: 'CLIENT_ID.apps.googleusercontent.com' } |
Zwroty | |
---|---|
gapi.auth2.GoogleAuth |
Obiekt gapi.auth2.GoogleAuth . Użyj metody then(), aby uzyskać obietnicę, która zostanie zrealizowana po zakończeniu inicjowania obiektu gapi.auth2.GoogleAuth .
|
Uwierzytelnianie Google(onInit, onError)
Wywołuje funkcję onInit po pełnym zainicjowaniu obiektu GoogleAuth
. Jeśli podczas inicjowania wystąpi błąd (może się tak zdarzyć w starych nieobsługiwanych przeglądarkach), 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 | Wartość Promise wypełniona po zakończeniu działania funkcji onInit lub odrzucona, jeśli wystąpił błąd inicjowania. Zwraca wartość zwracaną przez funkcję onInit (jeśli 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 |
Wymagane. Identyfikator klienta aplikacji znaleziony i utworzony w Konsoli interfejsów API Google. |
cookie_policy |
string |
Domeny, dla których mają być tworzone pliki cookie logowania. Może to być identyfikator URI, single_host_origin albo none . Jeśli nie określono inaczej, domyślna wartość to single_host_origin . |
scope |
string |
Zakresy, których dotyczy żądanie, w postaci ciągu znaków rozdzielanego 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. Prawda, jeśli nie określono inaczej. |
hosted_domain |
string |
Domena G Suite, do której użytkownicy muszą należeć, by się zalogować. Może on być modyfikowany przez klienty, dlatego sprawdź usługę domeny hostowanej zwróconego użytkownika. 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 możliwość używania interfejsów API FedCM w przeglądarce podczas logowania. |
ux_mode |
string |
Tryb UX używany w procesie logowania. Domyślnie wyświetli 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 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 na wykorzystanie danych. Domyślnie redirect_uri to bieżący adres URL bez parametrów zapytania i fragmentu z krzyżykiem.
|
enable_granular_consent |
boolean |
Opcjonalnie. Określa, czy włączyć szczegółowe uprawnienia. Jeśli ustawisz wartość false , bardziej szczegółowe uprawnienia do konta Google będą wyłączone w przypadku identyfikatorów klienta OAuth utworzonych przed 2019 rokiem. Nie ma to żadnego wpływu w przypadku identyfikatorów klientów OAuth utworzonych w 2019 r. lub później, ponieważ zawsze są w nich 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 biblioteki Google Platform.
Domyślnie nowo utworzone identyfikatory klientów nie mogą korzystać z biblioteki platformy i muszą używać nowszej biblioteki usług tożsamości Google. Możesz wybrać dowolną wartość. Do identyfikacji zalecamy podanie nazwy opisowej, na przykład nazwy produktu lub wtyczki.
Przykład: plugin_name: 'YOUR_STRING_HERE'
|
Uwierzytelnianie
GoogleAuth
to pojedyncza klasa, która udostępnia metody umożliwiające użytkownikowi zalogowanie się na konto Google, sprawdzenie bieżącego stanu logowania użytkownika, pobieranie określonych danych z profilu Google użytkownika, wysyłanie próśb o dodatkowe zakresy i wylogowywanie się z bieżącego konta.
gapi.auth2.getAuthInstance()
Zwraca obiekt GoogleAuth
. Przed wywołaniem tej metody musisz zainicjować obiekt GoogleAuth
za pomocą metody gapi.auth2.init()
.
Zwroty | |
---|---|
gapi.auth2.GoogleAuth |
Obiekt gapi.auth2.GoogleAuth . Użyj tego obiektu do wywoływania metod gapi.auth2.GoogleAuth .
|
GoogleAuth.isSignedIn.get()
Wskazuje, czy bieżący użytkownik jest zalogowany.
Zwroty | |
---|---|
Wartość logiczna |
true , jeśli użytkownik jest zalogowany, lub false , jeśli użytkownik jest niezalogowany lub obiekt GoogleAuth nie został zainicjowany.
|
GoogleAuth.isSignedIn.listen(listener)
Wykrywaj zmiany stanu 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 wykorzystaniem opcji określonych w polu gapi.auth2.init()
.
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 , 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 | 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 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. 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 procesu uzyskiwania zgody. Opcjonalnie. Możliwe wartości:
|
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 ma wartości Fałsz.
|
ux_mode |
string |
Tryb UX używany w procesie logowania. Domyślnie wyświetli 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 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.
|
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 uprawnienia dostępu offline do określonych zakresów.
Argumenty | |
---|---|
options |
Obiekt gapi.auth2.OfflineAccessOptions zawierający pary klucz-wartość parametrów. Przykład: { scope: 'profile email' } |
Zwroty | |
---|---|
Obietnica | Pole Promise , które jest wypełniane, gdy użytkownik przypisze żądane zakresy, 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 przed ukończeniem procesu uzyskiwania zgody.
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. Tej opcji nie należy używać, ponieważgapi.auth2.init
automatycznie zaloguje użytkownika, jeśli zalogował się wcześniej 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:
|
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 ma wartości Fałsz.
|
GoogleAuth.attachClickHandler(container, options, onsuccess, onfailure)
Łączy proces logowania do modułu obsługi kliknięć podanego kontenera.
Argumenty | |
---|---|
container | Identyfikator elementu div lub odwołanie do niego, 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, która ma zostać wywołana 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
uzyskuje się zwykle przez wywołanie 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ł ustawiony. Aby uzyskać zainicjowaną instancję GoogleAuth
, użyj metody currentUser.listen()
lub GoogleAuth.then()
.
Zwroty | |
---|---|
GoogleUser |
Bieżący użytkownik |
GoogleAuth.currentUser.listen(listener)
Wykrywaj zmiany dotyczące bieżącego użytkownika.
Argumenty | |
---|---|
listener |
Funkcja, która przyjmuje parametr GoogleUser .
listen przekazuje tę funkcję do instancji GoogleUser przy każdej zmianie, która modyfikuje currentUser .
|
GoogleUser.getId()
Pobierz unikalny identyfikator 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()
Pobierz 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 przypisane przez użytkownika w postaci ciągu znaków rozdzielanego 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 obiektu gapi.auth2.BasicProfile możesz pobrać za pomocą tych metod:
|
GoogleUser.getAuthResponse(includeAuthorizationData)
Pobierz obiekt odpowiedzi z sesji uwierzytelniania użytkownika.
Argumenty | |
---|---|
includeAuthorizationData | Opcjonalne: wartość logiczna, która określa, 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 tokena dostępu, a następnie zwraca obietnicę dla nowej odpowiedzi AuthResponse.
Zwroty | |
---|---|
Promise |
Pole Promise , które jest wypełniane ponownie załadowaną wartością gapi.auth2.AuthResponse podczas ponownego ładowania tokena OAuth.
|
gapi.auth2.AuthResponse
Odpowiedź zwrócona podczas wywoływania metod GoogleUser.getAuthResponse(includeAuthorizationData)
lub GoogleUser.reloadAuthResponse()
.
Właściwości | ||
---|---|---|
access_token |
string |
Przyznano token dostępu. |
id_token |
string |
Przyznano token identyfikatora. |
scope |
string |
Zakresy przyznane w tokenie dostępu. |
expires_in |
number |
Liczba sekund do wygaśnięcia tokena dostępu. |
first_issued_at |
number |
Sygnatura czasowa, w której użytkownik po raz pierwszy przyznał żądane zakresy. |
expires_at |
number |
Sygnatura czasowa wygaśnięcia tokenu dostępu. |
GoogleUser.hasGrantedScopes(scopes)
Zwraca wartość prawda, jeśli użytkownik przyznał określone zakresy.
Argumenty | |
---|---|
scopes | Ciąg znaków zakresów rozdzielonych spacjami. |
Zwroty | |
---|---|
Wartość logiczna | Prawda, jeśli zakresy zostały przyznane |
GoogleUser.grant(options)
Poproś użytkownika o dodatkowe zakresy.
Listę parametrów i kod błędu znajdziesz na GoogleAuth.signIn()
.
GoogleUser.grantOfflineAccess(options)
Uzyskaj od użytkownika uprawnienia dostępu offline do określonych zakresów.
Argumenty | |
---|---|
options |
Obiekt gapi.auth2.OfflineAccessOptions zawierający pary klucz-wartość parametrów. 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 służące do renderowania przycisku. 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.authorized(params, callback)
Przeprowadza jednorazową autoryzację OAuth 2.0. W zależności od użytych parametrów otworzy się wyskakujące okienko z prośbą o zalogowanie się przez Google lub spróbuje wczytać żądaną odpowiedź dyskretnie, bez interakcji ze strony użytkownika.
Metoda ta przydaje się między innymi w tych przypadkach:
- Aplikacja wysyła żądanie do punktu końcowego interfejsu API Google tylko raz, np. aby wczytać ulubione filmy użytkownika w YouTube przy pierwszym logowaniu.
- Twoja aplikacja ma własną infrastrukturę zarządzania sesjami i wymaga tokena identyfikatora tylko raz, aby zidentyfikować użytkownika w backendzie.
- Na tej samej stronie używanych jest kilka identyfikatorów klienta.
Argumenty | |
---|---|
params |
Obiekt zawierający pary klucz-wartość z danymi konfiguracyjnymi. 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 zrealizowaniu żądania (powodzenie lub niepowodzeniu).
|
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, np. z powodu nieobsługiwanego środowiska. Właściwość
details
podaje więcej informacji o zgłoszonym błędzie. 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 znaleziony i utworzony w Konsoli interfejsów API Google. |
scope |
string |
Wymagany. Zakresy, których dotyczy żądanie, w postaci ciągu znaków rozdzielanego spacjami. |
response_type |
string |
Lista typów odpowiedzi rozdzielonych spacjami. 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, dla których mają być tworzone pliki cookie logowania. Może to być identyfikator URI, single_host_origin albo 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ć, by się zalogować. Może on być modyfikowany przez klienty, dlatego sprawdź usługę domeny hostowanej zwróconego użytkownika. |
login_hint |
string |
Adres e-mail (lub identyfikator użytkownika) użytkownika, który ma być wstępnie wybrany podczas procesu logowania. Może on być modyfikowany przez użytkownika, chyba że użyjesz właściwości prompt: "none" .
|
include_granted_scopes |
boolean |
Określa, czy poprosić o token dostępu obejmujący wszystkie zakresy wcześniej przyznane aplikacji przez użytkownika, czy tylko zakresy żądane w bieżącym wywołaniu. Domyślna wartość to true .
|
enable_granular_consent |
boolean |
Opcjonalnie. Określa, czy włączyć szczegółowe uprawnienia. Jeśli ustawisz wartość false , bardziej szczegółowe uprawnienia do konta Google będą wyłączone w przypadku identyfikatorów klienta OAuth utworzonych przed 2019 rokiem. Nie ma to żadnego wpływu w przypadku identyfikatorów klientów OAuth utworzonych w 2019 r. lub później, ponieważ zawsze są w nich włączone bardziej szczegółowe uprawnienia.
|
plugin_name |
string |
Opcjonalnie. Jeśli jest ustawiona, identyfikatory klientów utworzone przed 29 lipca 2022 r. mogą korzystać z biblioteki Google Platform. Domyślnie nowo utworzone identyfikatory klientów nie mogą korzystać z biblioteki platformy i 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 na wywołanie zwrotne metody gapi.auth2.authorize
.
Właściwości | ||
---|---|---|
access_token |
string |
Przyznano token dostępu. Występuje tylko wtedy, gdy w response_type została określona wartość permission lub token .
|
id_token |
string |
Przyznano token identyfikatora. Występuje tylko wtedy, gdy w response_type określono id_token .
|
code |
string |
Przyznano kod autoryzacji. Występuje tylko wtedy, gdy w response_type określono code .
|
scope |
string |
Zakresy przyznane w tokenie dostępu. Występuje tylko wtedy, gdy w obiekcie response_type określono permission lub token .
|
expires_in |
number |
Liczba sekund do wygaśnięcia tokena dostępu. Występuje tylko wtedy, gdy w obiekcie response_type określono permission lub token .
|
first_issued_at |
number |
Sygnatura czasowa, w której użytkownik po raz pierwszy przyznał żądane zakresy. Występuje tylko wtedy, gdy w response_type została określona wartość permission lub token .
|
expires_at |
number |
Sygnatura czasowa wygaśnięcia tokenu dostępu. Występuje tylko wtedy, gdy w obiekcie response_type określono permission lub token .
|
error |
string |
Jeśli żądanie nie zostało zrealizowane, zobaczysz kod błędu. |
error_subtype |
string |
Jeśli żądanie nie zostało zrealizowane, może zawierać dodatkowe informacje do zwróconego kodu błędu. |