Zanim zaczniesz wysyłać żądania do Earth Engine za pomocą biblioteki klienta, musisz przeprowadzić uwierzytelnianie i użyć uzyskanych danych logowania do zainicjowania klienta Earth Engine.
Edytor kodu Earth Engine i JavaScript
Uwierzytelnianie i inicjowanie są obsługiwane automatycznie w edytorze kodu. Możesz przekierowywać żądania przez projekt w chmurze, logując się w prawym górnym rogu edytora kodu.
Jeśli używasz interfejsu JavaScript API (poza edytorem kodu), użyj jednej z funkcji pomocniczych uwierzytelniania w ee.data (np. ee.data.authenticateViaPopup()), a następnie ee.initialize(), jak pokazano w tym przykładzie.
Python i wiersz poleceń
Zanim zaczniesz korzystać z biblioteki klienta Earth Engine w Pythonie, musisz przeprowadzić uwierzytelnianie (potwierdzić swoją tożsamość) i użyć uzyskanych danych logowania do zainicjowania klienta Pythona. Procesy uwierzytelniania wykorzystują projekty Cloud do uwierzytelniania i są używane zarówno w przypadku bezpłatnego (niekomercyjnego), jak i płatnego korzystania z usługi. Aby przeprowadzić uwierzytelnianie i inicjowanie, uruchom
ee.Authenticate()
ee.Initialize(project='my-project')
Najpierw zostanie wybrany najlepszy tryb uwierzytelniania dla Twojego środowiska, a następnie pojawi się prośba o potwierdzenie dostępu do skryptów. Jeśli dane logowania już istnieją, są automatycznie używane ponownie – uruchom ee.Authenticate(force=True), aby utworzyć nowe dane logowania.
Krok inicjowania sprawdza, czy istnieją prawidłowe dane logowania, utworzone w ee.Authenticate() lub istniejące wcześniej jako domyślne dane logowania Google. Następnie inicjuje bibliotekę klienta w Pythonie za pomocą metod obsługiwanych przez serwer backendu. Musisz podać projekt, którego jesteś właścicielem lub do którego masz uprawnienia. Aby zarejestrować projekt i włączyć Earth Engine API, zapoznaj się z artykułem Konfiguracja projektu w chmurze. Ten projekt będzie używany do wykonywania wszystkich operacji Earth Engine.
W wierszu poleceń odpowiednikiem jest earthengine authenticate. Jeśli dane logowania wygasły lub są nieprawidłowe, może być konieczne uruchomienie earthengine
authenticate --force. Wywołania wiersza poleceń będą inicjowane przy każdym wywołaniu. Możesz użyć argumentu --project, aby ustawić projekt.
Możesz też skonfigurować projekt dla wszystkich przyszłych wywołań, uruchamiając polecenie earthengine
set_project {my-project}. Wiersz poleceń i ee.Initialize() będą używać tego projektu, gdy nie zostanie on określony bezpośrednio. Jeśli używasz uwierzytelniania przez gcloud (patrz poniżej), jako ostateczny projekt zostanie użyty projekt ustawiony przez gcloud auth application-default
set-quota-project {my-project}.
Szczegóły uwierzytelniania
Celem procesów uwierzytelniania Earth Engine jest uzyskanie „tokena” zabezpieczeń z zalogowanego konta, który można zapisać, aby umożliwić skryptom dostęp do danych. Ze względów bezpieczeństwa system uwierzytelniania Google przekazuje takie tokeny tylko do systemów, które można zabezpieczyć – patrz uwagi techniczne poniżej.
Ze względu na wrażliwość systemów, których dotyczy problem, istnieją różne sposoby postępowania w zależności od konkretnej sytuacji. Większość opcji jest kontrolowana przez parametr auth_mode: jako ee.Authenticate(auth_mode=...) lub earthengine authenticate --auth_mode=... w wierszu poleceń.
Pamiętaj, że jeśli dane logowania Google już istnieją w Twoim środowisku, możesz w ogóle nie musieć wywoływać ee.Authenticate(). Maszyny wirtualne Google Cloud, App Engine i inne środowiska udostępniają użyteczne „dane logowania otoczenia”, które zostaną też utworzone przez gcloud auth
application-default login.
Zalecamy jednak używanie ee.Authenticate() na początku wszystkich skryptów, aby zmaksymalizować zgodność. Bez parametru auth_mode powinien działać w większości sytuacji, ale jeśli tryb domyślny nie działa, postępuj zgodnie z poniższymi instrukcjami.
Tryb domyślny jest wybierany w ten sposób:
colab, jeśli używasz notatnika Google Colab.notebook, jeśli używasz innych notatników Jupyter niż Colab.localhost, jeśli wykryto przeglądarkę i nie zainstalowano pliku binarnego gcloud.gcloud, otherwise. W tym trybie musisz zainstalować gcloud.
Krótki przewodnik i tabela
Ten przewodnik po decyzjach zawiera możliwe opcje, jeśli domyślny tryb wybrany przez ee.Authenticate() nie działa. Jeśli na przykład korzystasz z innych środowisk notatników, może być konieczne jawne określenie notebook.
- Środowisko lokalne.
- „Lokalnie” oznacza, że uruchamiasz kod w powłoce Pythona lub notatniku Pythona na komputerze, przed którym siedzisz, a dokładniej na tym samym komputerze, na którym działa Twoja przeglądarka. Dotyczy to sytuacji, gdy Python i przeglądarka znajdują się na tym samym komputerze (zdalnym).
- Najłatwiej jest użyć
auth_mode=localhost, który zostanie wybrany domyślnie, jeśli gcloud nie jest zainstalowany, ale skrypt będzie działać tylko w środowiskach lokalnych. - Dostępne są też
auth_mode=gcloudiauth_mode=notebook.
- Środowisko zdalne.
- „Zdalny” oznacza, że przeglądarka znajduje się na jednym (lokalnym) komputerze, ale kod jest uruchamiany w innym miejscu, np. na zdalnej stacji roboczej lub w notatniku internetowym.
- Jeśli korzystasz z Colab, użyj
auth_mode=colab. Możesz też użyćgcloud, jeśli musisz ustawićscopes, aby wywoływać inne interfejsy API. - Jeśli możesz zainstalować gcloud zarówno na maszynie zdalnej, jak i na komputerze lokalnym, użyj
auth_mode=gcloud. - Jeśli możesz użyć projektu uwierzytelniania (patrz poniżej), użyj
auth_mode=notebook. - Jeśli nie możesz użyć projektu, zainstalować gcloud, użyć Colab ani przeglądarki na tym samym komputerze:
- Porozmawiaj z administratorem (ponownie) o tworzeniu projektów. Na przykład:
- Poproś administratora o skonfigurowanie projektu (jako właściciel, edytujący lub edytujący konfigurację OAuth).
- Możesz też poprosić administratora o przyznanie Ci uprawnień do tworzenia projektów.
Ta tabela pokazuje, które kombinacje funkcji są obsługiwane przez poszczególne tryby.
| For Local or Remote? | Wymagany projekt | Zakresy, które można ustawić | Wymagany lokalny interfejs wiersza poleceń | właściciel projektu | |
|---|---|---|---|---|---|
localhost |
lokalne | T | T | N | N |
colab |
pilot | T | N | N | N |
gcloud |
jedno i drugie | T | T | N | N |
notebook |
jedno i drugie | T | T | N | T |
Dane logowania do kont usługi i Compute Engine
ee.Initialize() będzie używać danych logowania Earth Engine (które ee.Authenticate() przechowuje w ~/.config/earthengine/credentials) lub pobierać dane logowania z google.auth.default(), ale w razie potrzeby możesz przekazać argument credentials=, aby użyć danych logowania z innego miejsca, pomijając te wartości domyślne.
Jeśli uwierzytelniasz kod Pythona, który będzie działać bez nadzoru, możesz uwierzytelnić się za pomocą konta usługi, a nie konta użytkownika. Informacje o używaniu kont usługi z Earth Engine znajdziesz w tej dokumentacji. Inne metody obejmują authenticate_service_account w module uwierzytelniania Colab oraz metody opisane w przewodniku Cloud dotyczącym uwierzytelniania jako konto usługi.
Jeśli Twój kod działa na maszynie wirtualnej Compute Engine, dla środowiska tworzone jest domyślne konto usługi, którego ee.Initialize() będzie domyślnie używać. Jeśli projekt w chmurze, w ramach którego uruchomiono maszynę wirtualną, nie jest zarejestrowany do użytku z Earth Engine (komercyjnego lub niekomercyjnego), może być konieczne zarejestrowanie konta usługi do korzystania z Earth Engine.
Szczegółowe informacje o trybach
auth_mode=colab. ee.Authenticate() utworzy lub uzyska domyślne dane uwierzytelniające obsługiwane przez Colab, w razie potrzeby uruchamiając colab.auth.authenticate_user(). Dane logowania zawsze używają zakresu cloud-platform i mogą być też używane do wywoływania innych interfejsów Cloud API.
auth_mode=gcloud. Spowoduje to przekazanie uwierzytelniania do narzędzia gcloud i jest równoznaczne z uruchomieniem gcloud auth application-default login z domyślnymi zakresami Earth Engine (earthengine, cloud-platform i drive) lub zakresami w argumencie scopes. Tryb gcloud działa zarówno w przypadku lokalnym, jak i zdalnym.
Szczegółowe instrukcje dotyczące trybu gcloud (przypadki lokalne i zdalne)
- Sprawdź, czy na komputerze lokalnym jest zainstalowany interfejs gcloud.
- W terminalu uruchom
gcloud help. Jeśli narzędzie gcloud nie jest zainstalowane, postępuj zgodnie z tymi instrukcjami, aby je zainstalować.
- W terminalu uruchom
- Terminal komputera lokalnego
- W terminalu uruchom
earthengine authenticate. - Dane wyjściowe polecenia będą wskazywać, że do pobierania danych logowania używane jest polecenie gcloud.
- Otworzy się okno przeglądarki ze stroną wyboru konta. Jeśli przeglądarka nie otworzy się automatycznie, kliknij URL.
- W terminalu uruchom
- Przeglądarka: wybór konta
- Wybierz konto, którego chcesz użyć do uwierzytelniania.
- Przeglądarka: ekran zgody
- Zaznacz, czy chcesz przyznać żądane zakresy, i kliknij „Zezwól”.
- Przeglądarka: ekran potwierdzenia
- W przeglądarce pojawi się strona z potwierdzeniem uwierzytelnienia, a polecenie
earthengine authenticatew oknie terminala wyświetli komunikat „Successfully saved authorization token” (Token autoryzacji został zapisany). - W niektórych przypadkach strona internetowa wyświetli kod, który należy wkleić z powrotem do środowiska Pythona.
- W przeglądarce pojawi się strona z potwierdzeniem uwierzytelnienia, a polecenie
- Kontynuuj inicjowanie.
auth_mode=localhost. Jest to proces podobny do gcloud w przypadkach, gdy gcloud nie jest zainstalowany. Wykonuje te same czynności co gcloud, ale działa tylko w przypadku lokalnym. Możesz podać opcjonalny numer portu internetowego, np. localhost:8086, lub użyć localhost:0, aby automatycznie wybrać port. Domyślny port to 8085.
auth_mode=notebook. Jest to tryb do zwykłych obciążeń, który działa w sytuacjach zdalnych, gdy lokalne wiersze poleceń są niedostępne. Przekieruje Cię ona na stronę Notebook Authenticator, na której musisz wybrać lub utworzyć „projekt uwierzytelniania” – szczegółowe informacje i przewodnik po rozwiązywaniu problemów znajdziesz poniżej. Projekt przekazany do ee.Initialize() nie musi być taki sam – możesz zachować ten sam projekt do uwierzytelniania, pracując nad różnymi projektami w różnych notatnikach. Zalecamy jawne przekazanie projektu do ee.Initialize(), ale domyślnie używany będzie projekt uwierzytelniania.
Szczegółowe instrukcje dotyczące trybu notatnika
- Przeglądarka: notatnik
- W komórce kodu notatnika uruchom ten kod, aby rozpocząć proces uwierzytelniania w trybie „notatnika”.
Kliknij link w danych wyjściowych komórki, aby otworzyć stronę uwierzytelniania notatnika w nowej karcie.import ee ee.Authenticate()
- W komórce kodu notatnika uruchom ten kod, aby rozpocząć proces uwierzytelniania w trybie „notatnika”.
- Przeglądarka: Notebook Authenticator
- Sprawdź, czy wyświetla się prawidłowe konto użytkownika.
- Wybierz projekt Google Cloud, który ma być używany do uwierzytelniania. Jeśli musisz utworzyć nowy projekt, zalecamy użycie konwencji nazewnictwa „ee-xyz”, gdzie xyz to Twoja zwykła nazwa użytkownika Earth Engine. (Jeśli nie możesz wybrać ani utworzyć projektu w chmurze, zapoznaj się z sekcją rozwiązywania problemów poniżej).
- Kliknij Wygeneruj token.
- Przeglądarka: wybór konta
- Wyświetli się strona wyboru konta. Kliknij konto użytkownika, któremu chcesz przyznać dostęp z notatnika.
- Przeglądarka: strona z ostrzeżeniem
- Wyświetli się strona z ostrzeżeniem, że aplikacja (czyli kod w notatniku) nie została utworzona przez Google. Kliknij Dalej, aby potwierdzić.
- Przeglądarka: ekran zgody
- Określ, czy chcesz przyznać żądane zakresy, i kliknij Dalej.
- Przeglądarka: ekran kodu autoryzacji
- Skopiuj kod weryfikacyjny autoryzacji.
- Przeglądarka: notatnik
- Wróć na kartę notatnika i wklej kod weryfikacyjny w danych wyjściowych komórki notatnika.
- W wyniku działania komórki powinien pojawić się komunikat „Successfully saved authorization token” (Token autoryzacji został zapisany).
- Kontynuuj inicjowanie.
Tryb notatnika ma rzadko używany parametr quiet: jeśli jest ustawiony, działa „nieinteraktywnie” i nie wyświetla prośby o podanie kodu uwierzytelniającego.
Zamiast tego podaje polecenie, które należy uruchomić, aby zapisać kod.
Projekty uwierzytelniania
Musisz mieć rolę właściciela, edytującego lub edytującego konfigurację OAuth w projekcie uwierzytelniania używanym w trybie notatnika. W wielu przypadkach, zwłaszcza w mniejszych zespołach, projekt uwierzytelniania, którego używasz na stronie uwierzytelniania notatnika, może być taki sam jak projekt główny, którego używasz do innych zadań.
Ze względu na kwestie bezpieczeństwa „Konfiguracja klienta OAuth” w projekcie uwierzytelniania jest konfiguracją jednorazową. Jeśli Ty lub inni użytkownicy skonfigurowaliście klienta OAuth w projekcie z innych powodów, nie można go usunąć i pojawi się błąd „niezgodna konfiguracja klienta OAuth2”. Do uwierzytelniania musisz użyć innego projektu lub skorzystać z trybów Colab, localhost lub gcloud opisanych powyżej.
Szczegółowe informacje o zakresach
Domyślne ustawienia uwierzytelniania Earth Engine obejmują wszystkie dostępne zakresy, więc jeśli domyślne ustawienia spełniają Twoje wymagania, możesz pominąć tę sekcję.
Zakresy Earth Engine: zakres OAuth 2.0 definiuje i ogranicza zestaw zasobów i operacji, do których aplikacja może uzyskać dostęp w imieniu użytkownika. Gdy używasz protokołu OAuth do uwierzytelniania w Earth Engine, musisz poprosić o co najmniej 1 z tych zakresów:
https://www.googleapis.com/auth/earthengine: uprawnienia do odczytu i zapisu zasobów Earth Engine. Wymagana do tworzenia, modyfikowania i usuwania zasobów, zarządzania uprawnieniami do zasobów oraz wykonywania zadań eksportu.https://www.googleapis.com/auth/earthengine.readonly: dostęp tylko do odczytu do zasobów Earth Engine.
Oba zakresy umożliwiają wykonywanie skryptów i obliczeń (np. ocenę wyrażeń lub renderowanie wizualizacji mapy).
Zakresy Google Cloud i Dysku: jeśli zapytania lub skrypty Earth Engine odwołują się do zewnętrznych danych lub zasobów, Twoje dane logowania muszą też obejmować odpowiednie zakresy dla tych usług:
- Cloud Storage (GCS) (podczas odczytu lub zapisu w zasobnikach Cloud Storage, np. podczas wczytywania plików GeoTIFF zoptymalizowanych pod kątem chmury (COG) lub eksportowania danych wyjściowych zadania):
https://www.googleapis.com/auth/devstorage.full_controlhttps://www.googleapis.com/auth/devstorage.read_writehttps://www.googleapis.com/auth/devstorage.read_only
- BigQuery (BQ) (podczas odczytywania tabel lub zapisywania eksportów do BigQuery):
https://www.googleapis.com/auth/bigquery
- Dysk Google (podczas uzyskiwania dostępu do danych na Dysku Google lub eksportowania ich na Dysk Google):
https://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/drive.readonly
Google Cloud oferuje też szerokie zakresy, które obejmują wszystkie usługi Google Cloud:
- Cloud Platform (szeroki dostęp do usług Google Cloud, w tym Earth Engine, Cloud Storage i BigQuery; pamiętaj, że Dysk Google to osobna usługa Workspace, która nie jest objęta tymi zakresami):
https://www.googleapis.com/auth/cloud-platformhttps://www.googleapis.com/auth/cloud-platform.read-only
Zakresy domyślne: domyślne zakresy skonfigurowane zarówno przez edytor kodu Earth Engine, jak i biblioteki klienta (takie jak ee.Authenticate()) obejmują wszystkie te zakresy: earthengine, cloud-platform i drive (szczegółowe informacje znajdziesz powyżej).
W związku z tym dostosowywanie zakresu (np. za pomocą parametru scopes w ee.Authenticate(scopes=[...])) jest konieczne tylko wtedy, gdy masz określone ograniczenia zabezpieczeń lub zasady organizacji, które wymagają ograniczenia uprawnień.
Rozwiązywanie problemów
Co zrobić, jeśli nie mogę utworzyć projektu w chmurze?
Niektóre organizacje kontrolują, kto może tworzyć projekty w chmurze. Jeśli podczas próby utworzenia projektu na stronie Notebook Authenticator pojawi się błąd, możesz spróbować wykonać te czynności:
- Spróbuj utworzyć projekt bezpośrednio, aby sprawdzić, czy masz wymagane uprawnienia.
- Skontaktuj się z administratorem organizacji, aby dowiedzieć się, jakie procesy są dostępne do utworzenia projektu.
- Utwórz projekt z konta nienależącego do organizacji i dodaj konto, którego używasz do pracy, jako właściciela projektu. Uwaga: niektóre organizacje mają zasady zabezpieczeń, które uniemożliwiają dostęp do klientów OAuth z projektów zewnętrznych.
Błąd: „Interfejs Earth Engine API nie był wcześniej używany w projekcie XXX lub jest wyłączony”
Najpierw upewnij się, że masz skonfigurowany projekt w ee.Initialize() lub w wierszu poleceń (domyślne projekty udostępniane przez Cloud i Colab nie będą miały włączonego Earth Engine). Po drugie, upewnij się, że interfejs Earth Engine API jest włączony w Twoim projekcie.
Błąd: „Projekt ma niezgodną konfigurację klienta OAuth2”
Projekty w chmurze mogą mieć tylko 1 konfigurację klienta OAuth2. Możesz sprawdzić, czy projekt w chmurze ma skonfigurowanego klienta OAuth2, sprawdzając identyfikatory klienta OAuth 2.0 na stronie Dane logowania. Musisz wybrać inny projekt w chmurze, który ma zgodną konfigurację skonfigurowaną już przez uwierzytelniacz notatnika, albo wybrać lub utworzyć projekt w chmurze bez klientów OAuth2. Moduł uwierzytelniający automatycznie skonfiguruje ten projekt. Niestety system OAuth nie pozwala użytkownikom na usuwanie konfiguracji, więc musisz użyć innego projektu. Nie musi to być ten sam projekt, który jest używany do innych zadań w Earth Engine. Pamiętaj, że ten błąd nie występuje w trybie Colab.
Błąd: „gcloud failed. Sprawdź, czy nie wystąpiły błędy, i w razie potrzeby zainstaluj gcloud”.
Ten błąd może wystąpić, jeśli gcloud nie jest zainstalowany lub nie znajduje się w Twojej ścieżce PATH. Może też wystąpić, jeśli wywołasz funkcję ee.Authenticate(auth_mode='gcloud') z komórki kodu notatnika. Zamiast tego użyj ee.Authenticate(), który domyślnie używa uwierzytelniania w trybie notatnika. Jeśli nie możesz utworzyć projektu, zapoznaj się z rozwiązaniem powyżej.
Co zrobić, jeśli nie mam dostępu do komputera lokalnego, aby zainstalować gcloud?
Jeśli pracujesz w środowisku internetowym bez dostępu do terminala lokalnego, a nadal musisz używać terminala zdalnego, możesz zainicjować narzędzie wiersza poleceń, uruchamiając tryb notatnika za pomocą polecenia earthengine
authenticate --auth_mode=notebook.
Błąd 400: redirect_uri_mismatch
Ten błąd może wystąpić, jeśli uwierzytelniasz się na maszynie zdalnej bez dostępu do przeglądarki. Spróbuj dodać --quiet, jeśli uruchamiasz earthengine authenticate z wiersza poleceń, lub ee.Authenticate(quiet=True), jeśli używasz klienta Pythona. Wymaga to uwierzytelnienia za pomocą gcloud na komputerze, który ma dostęp do przeglądarki.
Błąd: „Twoja aplikacja uwierzytelnia się przy użyciu lokalnego domyślnego uwierzytelniania aplikacji. Interfejs earthengine.googleapis.com API wymaga projektu z limitem, który nie jest domyślnie ustawiony”.
Ten błąd może wystąpić, gdy Earth Engine nie może określić identyfikatora projektu. Jeśli opcje rozwiązywania problemów w Google Cloud nie działają, spróbuj uruchomić earthengine set_project YOUR_PROJECT_ID lub gcloud
auth application-default set-quota-project YOUR_PROJECT_ID.
Błąd: „Brak wymaganych zakresów dla [Cloud Storage / BigQuery]”
Ten błąd występuje, gdy żądanie Earth Engine uzyskuje dostęp do zasobów Cloud Storage lub BigQuery, ale dane logowania użyte do zainicjowania Earth Engine nie obejmują wymaganych zakresów dla tej usługi (lub zakresu cloud-platform, który obejmuje wszystkie usługi Google Cloud). Zwykle dzieje się tak, gdy podczas uwierzytelniania dostosowano parametr scopes (np. podano tylko zakresy Earth Engine w ee.Authenticate(scopes=[...])) lub gdy istniejące dane logowania zostały utworzone bez tych zakresów.
Ten problem można rozwiązać na 2 sposoby:
- Ponowne uwierzytelnianie z domyślnymi zakresami: domyślne dane uwierzytelniające Earth Engine obejmują zakres
cloud-platform, który obejmuje zarówno Cloud Storage, jak i BigQuery. Ponownie uwierzytelnij, używając ustawień domyślnych:- W Pythonie:
ee.Authenticate(force=True) - W wierszu poleceń:
earthengine authenticate --force
- W Pythonie:
- Uwzględnij wymagane zakresy: jeśli Twoje środowisko wymaga dostosowania zakresów, upewnij się, że lista
scopeszawierahttps://www.googleapis.com/auth/cloud-platformlub zakres konkretnej usługi (np.https://www.googleapis.com/auth/devstorage.full_controllubhttps://www.googleapis.com/auth/devstorage.read_onlyw przypadku Cloud Storage albohttps://www.googleapis.com/auth/bigqueryw przypadku BigQuery).
Więcej informacji o dostępnych zakresach znajdziesz w artykule Szczegółowe informacje o zakresach.
Uwagi techniczne
Dla osób zainteresowanych kwestiami technicznymi: potrzeba stosowania różnych mechanizmów tworzenia danych logowania wynika z konieczności przekazywania danych logowania do znanego i zaufanego środowiska. Poniżej znajdziesz krótkie omówienie różnych przypadków.
- Kiedyś był dostępny tryb
paste, który generował token do wklejenia w dowolnym miejscu, ale uznano, że jest to zbyt ryzykowne, i nie jest już dostępny. colab:auth.authenticate_user()poprosi Cię o udostępnienie danych logowania klientowi uwierzytelniającemu „Colab”, czyli samemu środowisku notatnika. Są one następnie dostępne wgoogle.auth.default()i używane przezee.Initialize().localhost: dane logowania są przekazywane z przeglądarki do portu na komputerze lokalnym. W tej sytuacji kompleksowe zabezpieczenia zależą od tego, czy komputer lokalny nie został przejęty. Klient uwierzytelniający, który zobaczysz, to „Earth Engine Authenticator”.gcloud: używa procesu--launch-browseropisanego w dokumentacji gcloud i--no-launch-browser, jeśli jest na maszynie zdalnej. Używany klient uwierzytelniania to „Google Auth Library”.notebook: tworzymy nowego klienta uwierzytelniania specjalnie na potrzeby Twojej pracy – na stronie zgody zobaczysz swój adres e-mail. Ten klient jest ustawiony w trybie „programistycznym”, który jest specjalnym przypadkiem umożliwiającym używanie starszych tokenów trybu wklejania. Musimy użyć Twojego projektu, ponieważ takich klientów nie można udostępniać dużej liczbie użytkowników.