W tym artykule znajdziesz opis metod i atrybutów klienta w języku JavaScript, których możesz używać do implementacji Logowania przez Google w swoich aplikacjach internetowych.
Jeśli podczas korzystania z biblioteki napotkasz jakiś problem, zgłoś go 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. Zobacz
gapi.auth2.ClientConfig dla różnych
właściwości, które można skonfigurować. Na przykład:
{ client_id: 'CLIENT_ID.apps.googleusercontent.com' } |
Zwroty | |
---|---|
gapi.auth2.GoogleAuth |
Obiekt gapi.auth2.GoogleAuth . Użyj
then(), aby uzyskać obietnicę
, który zostaje rozwiązany po zakończeniu działania obiektu gapi.auth2.GoogleAuth
zainicjuję.
|
Uwierzytelnianie Google(onInit, onError)
Wywołuje funkcję onInit, gdy obiekt GoogleAuth
jest w pełni
zainicjowano. Jeśli podczas inicjowania pojawi się błąd (może się tak zdarzyć w starszych nieobsługiwanych przeglądarkach):
funkcja onError zostanie wywołana.
Argumenty | |
---|---|
onInit |
Funkcja wywoływana za pomocą obiektu GoogleAuth , gdy jest w pełni
zainicjowano.
|
onError |
Funkcja wywołana za pomocą obiektu zawierającego właściwość error ,
jeśli nie udało się zainicjować GoogleAuth .
|
Zwroty | |
---|---|
Promise | Wartość Promise , która jest wypełniana, gdy onInit
została ukończona lub odrzucona, jeśli wystąpił błąd inicjowania. Usuwa się przy użyciu
zwrócona wartość z funkcji 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 elementu
dla środowiska. Właściwość
details
podaje więcej informacji o zgłoszonym błędzie.
gapi.auth2.ClientConfig
Interfejs przedstawiający różne parametry konfiguracji parametru
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. Identyfikator URI
single_host_origin lub none . Domyślna wartość to
single_host_origin , jeśli nie określono inaczej. |
scope |
string |
Zakresy, których dotyczy żądanie, w postaci ciągu znaków rozdzielanego spacjami. Opcjonalny, jeśli
fetch_basic_profile nie ma wartości Fałsz. |
fetch_basic_profile |
boolean |
Pobierz dane użytkowników podstawowych informacji profilowych podczas logowania. Dodaje „profile”, „e-mail” oraz „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ć. Ten
podatne na zmiany przez klientów,
usłudze domeny hostowanej zwróconego użytkownika. Używaj
GoogleUser.getHostedDomain() włączona
oraz z deklaracją hd w tokenie identyfikatora na stronie
serwera do zweryfikowania domeny jest oczekiwana.
|
use_fedcm |
boolean |
Opcjonalna (domyślnie True ). Włącz lub wyłącz używanie usługi
interfejsów API FedCM przeglądarki podczas logowania. |
ux_mode |
string |
Tryb UX używany w procesie logowania. Domyślnie otworzy się proces uzyskiwania zgody
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 zastępować parametr
domyślna wartość redirect_uri , która będzie używana na koniec procesu uzyskiwania zgody.
domyślnie redirect_uri to bieżący adres URL bez parametrów zapytania i szyfru
fragment.
|
enable_granular_consent |
boolean |
Opcjonalnie: Określa, czy włączyć
szczegółowy
. Ustawienie wartości false pozwala na bardziej szczegółowe
Uprawnienia konta zostaną wyłączone dla identyfikatorów klienta OAuth utworzonych przed
2019 r. W przypadku identyfikatorów klientów OAuth utworzonych w 2019 r. lub później nie będzie to miało wpływu, ponieważ
bardziej szczegółowe uprawnienia są zawsze włączone.
|
plugin_name |
string |
Opcjonalnie: Jeśli ta wartość jest ustawiona, nowe identyfikatory klientów utworzone przed lipcem
29 roku 2022 roku możesz korzystać ze starszej biblioteki Google Platform.
Domyślnie nowo utworzone identyfikatory klientów nie mogą używać
biblioteki platformy i muszą używać nowszej wersji
Biblioteka usług. Możesz wybrać dowolną wartość, nazwę opisową, taką jak
produktu lub wtyczki jest zalecana do identyfikacji.
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łania
Metody użytkownika 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 wylogowany, a obiekt GoogleAuth nie jest
zainicjowano.
|
GoogleAuth.isSignedIn.listen(listener)
Wykrywaj zmiany stanu logowania bieżącego użytkownika.
Argumenty | |
---|---|
listener |
Funkcja, która przyjmuje wartość logiczną. listen() kart
true do tej funkcji, gdy użytkownik się zaloguje, oraz
false , gdy użytkownik się wyloguje.
|
GoogleAuth.signIn()
Loguje użytkownika z wykorzystaniem opcji określonych w polu gapi.auth2.init()
.
Zwroty | |
---|---|
Promise | Pole Promise wypełnione wystąpieniem GoogleUser , gdy
użytkownik uwierzytelnia się i przyznaje żądane zakresy lub został odrzucony za pomocą obiektu
zawierający właściwość error , jeśli wystąpił błąd. Zobacz
w następnej sekcji znajdziesz kody błędów. |
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 | |
---|---|
Promise | Pole Promise wypełnione wystąpieniem GoogleUser , gdy
użytkownik uwierzytelnia się i przyznaje żądane zakresy lub został odrzucony za pomocą obiektu
zawierający 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, zanim dokończył proces logowania.
access_denied
- Użytkownik odmówił uprawnień do wymaganych zakresów.
immediate_failed
-
Nie można automatycznie wybrać żadnego użytkownika bez pytania o zgodę na przetwarzanie danych. Błąd zgłoszony podczas
za pomocą polecenia
signIn
z opcjąprompt: 'none'
. Ta opcja nie powinna być nie jest wymagane, ponieważgapi.auth2.init
automatycznie zaloguje użytkownika, jeśli użytkownik był zalogowany podczas poprzedniej sesji.
gapi.auth2.SignInOptions
Interfejs przedstawiający różne parametry konfiguracji parametru
Metoda GoogleAuth.signIn(options)
.
Parametry | ||
---|---|---|
prompt |
string |
Wymusza konkretny tryb procesu uzyskiwania 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
Parametry: gapi.auth2.init . Opcjonalne, jeśli atrybut fetch_basic_profile nie jest ustawiony
na fałsz.
|
ux_mode |
string |
Tryb UX używany w procesie logowania. Domyślnie otworzy się proces uzyskiwania zgody
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 pozwala zastąpić
domyślna wartość redirect_uri , która zostanie użyta na końcu zgody
przepływu danych. Wartość domyślna redirect_uri to bieżący adres URL pozbawiony zapytania
i fragment z krzyżykiem.
|
GoogleAuth.signOut()
Wylogowuje bieżące konto z aplikacji.
Zwroty | |
---|---|
Promise | Pole Promise wypełnione po podpisaniu użytkownika.
na zewnątrz. |
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 |
gapi.auth2.OfflineAccessOptions
który zawiera pary klucz-wartość parametrów. Przykład: { scope: 'profile email' } |
Zwroty | |
---|---|
Promise | Wartość Promise zrealizowana, gdy użytkownik przyzna
żądanych zakresów, przekazując obiekt zawierający kod autoryzacji do
do obsługi realizacji zamówienia w 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ł uprawnień do wymaganych zakresów.
immediate_failed
-
Nie można automatycznie wybrać żadnego użytkownika bez pytania o zgodę na przetwarzanie danych. Błąd zgłoszony podczas
za pomocą polecenia
signIn
z opcjąprompt: 'none'
. Ta opcja nie powinna być nie jest wymagane, ponieważgapi.auth2.init
automatycznie zaloguje użytkownika, jeśli użytkownik był zalogowany podczas poprzedniej sesji.
gapi.auth2.OfflineAccessOptions
Interfejs przedstawiający różne parametry konfiguracji parametru
GoogleAuth.grantOfflineAccess(options)
.
Parametry | ||
---|---|---|
prompt |
string |
Wymusza konkretny tryb procesu uzyskiwania 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
Parametry: gapi.auth2.init . Opcjonalne, jeśli atrybut fetch_basic_profile nie jest ustawiony
na 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 być
dołącz moduł obsługi kliknięć. |
options | Obiekt zawierający pary klucz-wartość parametrów. Zobacz 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
są zwykle uzyskiwane przez wywołanie
GoogleAuth.currentUser.get().
GoogleAuth.currentUser.get()
Zwraca obiekt GoogleUser
reprezentującego obecnego użytkownika. Pamiętaj, że w nowo zainicjowanym
GoogleAuth
, bieżący użytkownik nie został skonfigurowany. Użyj
Metoda currentUser.listen()
lub GoogleAuth.then()
aby uzyskać zainicjowaną instancję GoogleAuth
.
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 .
Funkcja listen przekazuje tę funkcję 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ć
korzystając z 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
i zakresu. Domyślnie token dostępu i żądane zakresy nie są zwracane, gdy
fetch_basic_profile ma wartość prawda (wartość domyślna), a żadne dodatkowe zakresy nie są
poproszono o dostęp. |
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 wypełnione po ponownym załadowaniu
gapi.auth2.AuthResponse podczas ponownego ładowania
Token OAuth został wykonany.
|
gapi.auth2.AuthResponse
Odpowiedź zwrócona podczas połączenia
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ę tych elementów znajdziesz na stronie GoogleAuth.signIn()
i kod błędu.
GoogleUser.grantOfflineAccess(options)
Uzyskaj od użytkownika uprawnienia dostępu offline do określonych zakresów.
Argumenty | |
---|---|
options |
gapi.auth2.OfflineAccessOptions
który zawiera 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, używając: ustawienia określone 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. Na przykład:
{ scope: 'email', width: 200, height: 50, longtitle: true, theme: 'dark', onsuccess: handleSuccess, onfailure: handleFailure }Możesz określić następujące opcje:
|
Zaawansowane
gapi.auth2.authorized(params, callback)
Przeprowadza jednorazową autoryzację OAuth 2.0. W zależności od użytych parametrów spowoduje to otwarcie pojawi się wyskakujące okienko z procesem logowania Google lub spróbuj wczytać żądaną odpowiedź dyskretnie, bez interakcji ze strony użytkownika.
Metoda ta przydaje się między innymi w tych przypadkach:
- Aplikacja musi zażądać punktu końcowego Google API tylko raz, np. w celu załadowania ulubione filmy użytkownika w YouTube przy pierwszym zalogowaniu się.
- Twoja aplikacja ma własną infrastrukturę zarządzania sesjami i wymaga jedynie Token identyfikatora raz, który pozwala 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. Zobacz
gapi.auth2.AuthorizeConfig dla
różne właściwości,
które można skonfigurować. Na przykład:
{ client_id: 'CLIENT_ID.apps.googleusercontent.com', scope: 'email profile openid', response_type: 'id_token permission' } |
callback |
Funkcja wywoływana przy użyciu argumentu
gapi.auth2.AuthorizeResponse obiekt
po zakończeniu żądania (powodzenie lub niepowodzenie).
|
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 elementu
dla środowiska. Właściwość
details
podaje więcej informacji o zgłoszonym błędzie. popup_closed_by_user
- Użytkownik zamknął wyskakujące okienko, zanim dokończył proces logowania.
access_denied
- Użytkownik odmówił uprawnień do wymaganych zakresów.
immediate_failed
-
Nie można automatycznie wybrać żadnego użytkownika bez pytania o zgodę na przetwarzanie danych. Błąd zgłoszony podczas
za pomocą polecenia
signIn
z opcjąprompt: 'none'
.
gapi.auth2.AuthorizeConfig
Interfejs przedstawiający różne parametry konfiguracji parametru
Metoda 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 to:
|
prompt |
string |
Wymusza konkretny tryb procesu uzyskiwania zgody. Możliwe wartości to:
|
cookie_policy |
string |
Domeny, dla których mają być tworzone pliki cookie logowania. Identyfikator URI
single_host_origin lub none . Domyślna wartość to
single_host_origin , jeśli nie określono inaczej.
|
hosted_domain |
string |
Domena G Suite, do której użytkownicy muszą należeć, by się zalogować. Podatne na zmiany przez klientów, więc pamiętaj o sprawdzeniu właściwości hostowanej domeny 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. Naraża to
modyfikację przez użytkownika, chyba że użyto dodatku prompt: "none" .
|
include_granted_scopes |
boolean |
Określa, czy poprosić o token dostępu obejmujący wszystkie zakresy wcześniej przyznane przez użytkownika
lub tylko w zakresach żądanych w bieżącym wywołaniu. Domyślna wartość to true .
|
enable_granular_consent |
boolean |
Opcjonalnie: Określa, czy włączyć
szczegółowy
. Ustawienie wartości false pozwala na bardziej szczegółowe
Uprawnienia konta zostaną wyłączone dla identyfikatorów klienta OAuth utworzonych przed
2019 r. W przypadku identyfikatorów klientów OAuth utworzonych w 2019 r. lub później nie będzie to miało wpływu, ponieważ
bardziej szczegółowe uprawnienia są zawsze włączone.
|
plugin_name |
string |
Opcjonalnie: Jeśli identyfikatory klientów zostały skonfigurowane przed 29 lipca 2022 r., mogą używać parametru
Biblioteka Google Platform. Domyślnie nowo utworzone identyfikatory klientów są blokowane
nie mogą korzystać z biblioteki platformy,
i zamiast tego muszą używać nowszej wersji
Biblioteka usług tożsamości. Możesz wybrać dowolną wartość, opisową nazwę
np. nazwę produktu lub wtyczki, aby można ją było łatwo zidentyfikować.
Przykład: plugin_name: 'YOUR_STRING_HERE'
|
gapi.auth2.AuthorizeResponse
Odpowiedź zwrócona na wywołanie zwrotne
Metoda gapi.auth2.authorize
.
Właściwości | ||
---|---|---|
access_token |
string |
Przyznano token dostępu. Występuje tylko wtedy, gdy wartość właściwości permission lub token była
określone w response_type .
|
id_token |
string |
Przyznano token identyfikatora. Występuje tylko wtedy, gdy w parametrze id_token został określony
response_type
|
code |
string |
Przyznano kod autoryzacji. Występuje tylko wtedy, gdy w parametrze code został określony
response_type
|
scope |
string |
Zakresy przyznane w tokenie dostępu. Występuje tylko wtedy, gdy permission lub
token określono w response_type .
|
expires_in |
number |
Liczba sekund do wygaśnięcia tokena dostępu. Występuje tylko wtedy, gdy permission
lub token określono w response_type .
|
first_issued_at |
number |
Sygnatura czasowa, w której użytkownik po raz pierwszy przyznał żądane zakresy. Występuje tylko wtedy, gdy
Pole permission lub token zostało określone w tabeli response_type .
|
expires_at |
number |
Sygnatura czasowa wygaśnięcia tokenu dostępu. Występuje tylko wtedy, gdy permission
lub token określono w response_type .
|
error |
string |
Jeśli żądanie nie zostało przetworzone, zawiera ono kod błędu. |
error_subtype |
string |
Jeśli żądanie nie zostało zrealizowane, kod błędu może też zawierać dodatkowe informacje. . |