Wyświetl pierwsze 100 plików & foldery na Dysku Google

1. Korzystanie z interfejsów Google Workspace API

W tym samouczku dowiesz się, jak korzystać z interfejsów Google Workspace (wcześniej G Suite) API typu REST opartych na protokole HTTP. Przykład zostanie podany w języku Python ze względu na jego zwięzłość i dostępność, ale możesz też użyć swojego ulubionego języka programowania. Poznasz podstawowe zagadnienia, takie jak korzystanie z konsoli dewelopera do tworzenia projektów i zarządzania nimi, uzyskiwanie danych logowania i instalowanie bibliotek klientów interfejsu API. Po dopełnieniu formalności napiszesz aplikację, która będzie wyświetlać pierwsze 100 plików i folderów na Dysku Google za pomocą interfejsu API.

Czego się nauczysz

  • Tworzenie projektu za pomocą konsoli Google/Cloud Developers Console
  • Uzyskiwanie i używanie w aplikacji danych logowania OAuth2
  • Więcej informacji o korzystaniu z bibliotek klienta interfejsów API Google
  • Tworzenie aplikacji za pomocą interfejsów Google API i interfejsów Google Workspace API
  • Uzyskiwanie informacji o plikach i folderach za pomocą interfejsu Google Drive API

Czego potrzebujesz

  • dostęp do internetu i przeglądarki;
  • konto Google (w przypadku kont Google Workspace może być wymagana zgoda administratora);
  • znajomość systemów zgodnych ze standardem POSIX, takich jak Linux i Mac OS X;
  • Możliwość tworzenia plików źródłowych za pomocą edytora kodu lub poleceń powłoki.
  • Podstawowe umiejętności w zakresie Pythona (2 lub 3), ale możesz używać dowolnego obsługiwanego języka.
  • niektóre pliki lub foldery na Dysku Google,

2. Ankieta

Jak zamierzasz wykorzystać ten samouczek?

Tylko przeczytaj Przeczytaj i wykonaj ćwiczenia

Jak oceniasz narzędzia dla deweloperów i interfejsy API Google Workspace?

Początkujący Średnio zaawansowany Zaawansowany

3. Przegląd

Z tego modułu dowiesz się, jak:

  1. Pobieranie biblioteki klienta interfejsów API Google dla języka Python
  2. Tworzenie nowego projektu w Google Cloud Console
  3. Uzyskiwanie niezbędnych danych logowania do aplikacji
  4. Użyj tych danych logowania, aby uzyskać dostęp do interfejsu Google Drive API.

Jeśli nie chcesz używać Pythona, możesz zaimplementować codelab w ulubionym narzędziu programistycznym (biblioteki klienta obsługiwanych języków są dostępne tutaj) i po prostu traktować przykłady w Pythonie jako (wykonywalny) pseudokod.

4. Potwierdź środowisko Pythona

W tym laboratorium musisz użyć języka Python (chociaż biblioteki klienta interfejsów API Google obsługują wiele języków, więc możesz utworzyć odpowiednik w ulubionym narzędziu programistycznym i używać Pythona jako pseudokodu). W szczególności te warsztaty obsługują Pythona w wersjach 2 i 3, ale zalecamy jak najszybsze przejście na wersję 3.x.

Cloud Shell to wygodne narzędzie dostępne dla użytkowników bezpośrednio z konsoli Cloud. Nie wymaga lokalnego środowiska programistycznego, więc ten samouczek można w całości wykonać w chmurze za pomocą przeglądarki internetowej. Cloud Shell jest szczególnie przydatny, jeśli tworzysz lub planujesz tworzyć aplikacje za pomocą usług i interfejsów API GCP. W tym ćwiczeniu w Cloud Shell są już zainstalowane obie wersje Pythona.

W Cloud Shell jest też zainstalowany IPython, czyli interaktywny interpreter Pythona wyższego poziomu, który zalecamy, zwłaszcza jeśli należysz do społeczności zajmującej się nauką o danych lub uczeniem maszynowym. Jeśli tak jest, IPython jest domyślnym interpreterem notatników Jupyter oraz Colab, czyli notatników Jupyter hostowanych przez zespół ds. badań Google.

IPython preferuje interpreter Pythona 3, ale jeśli nie jest on dostępny, używa Pythona 2. Do IPythona można uzyskać dostęp z Cloud Shell, ale można go też zainstalować w lokalnym środowisku programistycznym. Wyjdź, naciskając ^D (Ctrl-d), i zaakceptuj ofertę wyjścia. Przykładowe dane wyjściowe po uruchomieniu ipython będą wyglądać tak:

$ ipython
Python 3.7.3 (default, Mar 4 2020, 23:11:43)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.13.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]:

Jeśli nie chcesz używać IPythona, możesz użyć standardowego interaktywnego interpretera Pythona (w Cloud Shell lub w lokalnym środowisku programistycznym). W tym przypadku również możesz zakończyć działanie interpretera za pomocą kombinacji klawiszy ^D:

$ python
Python 2.7.13 (default, Sep 26 2018, 18:42:22)
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
$ python3
Python 3.7.3 (default, Mar 10 2020, 02:33:39)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

W tym samouczku zakłada się też, że masz zainstalowane pip narzędzie do instalacji (menedżer pakietów Pythona i rozwiązywanie zależności). Jest on dołączony do wersji 2.7.9+ lub 3.4+. Jeśli masz starszą wersję Pythona, instrukcje instalacji znajdziesz w tym przewodniku. W zależności od uprawnień możesz potrzebować dostępu sudo lub dostępu superużytkownika, ale zwykle nie jest to konieczne. Możesz też użyć pip2 lub pip3, aby wykonać pip w przypadku konkretnych wersji Pythona.

W dalszej części tego samouczka założono, że używasz języka Python 3. Jeśli instrukcje dla języka Python 2 będą się znacznie różnić od instrukcji dla wersji 3.x, podamy je osobno.

*Tworzenie środowisk wirtualnych i korzystanie z nich

Ta sekcja jest opcjonalna i jest wymagana tylko w przypadku osób, które muszą używać środowiska wirtualnego w tym laboratorium programowania (zgodnie z ostrzeżeniem w pasku bocznym powyżej). Jeśli na komputerze masz tylko Pythona 3, możesz po prostu wydać to polecenie, aby utworzyć środowisko wirtualne o nazwie my_env (możesz wybrać inną nazwę):

virtualenv my_env

Jeśli jednak masz na komputerze zarówno Pythona 2, jak i 3, zalecamy zainstalowanie wirtualnego środowiska Python 3, co możesz zrobić za pomocą polecenia -p flag:

virtualenv -p python3 my_env

Wejdź do nowo utworzonego środowiska wirtualnego, „aktywując” je w ten sposób:

source my_env/bin/activate

Sprawdź, czy jesteś w środowisku, obserwując, czy przed promptem powłoki znajduje się teraz nazwa środowiska, np.

(my_env) $ 

Teraz możesz pip install wszystkie wymagane pakiety, wykonywać kod w tym środowisku itp. Kolejną zaletą jest to, że jeśli coś zepsujesz, na przykład uszkodzisz instalację Pythona, możesz usunąć całe środowisko bez wpływu na resztę systemu.

5. Instalowanie biblioteki klienta interfejsów API Google dla Pythona

W tym laboratorium programowania wymagane jest użycie biblioteki klienta interfejsów API Google dla języka Python, więc albo jest to prosty proces instalacji, albo nie musisz nic robić.

Wcześniej zalecaliśmy korzystanie z Cloud Shell ze względu na wygodę. Cały samouczek możesz przejść w przeglądarce internetowej w chmurze. Innym powodem, dla którego warto korzystać z Cloud Shell, jest to, że wiele popularnych narzędzi programistycznych i niezbędnych bibliotek jest już zainstalowanych.

*Instalowanie bibliotek klienta

(opcjonalnie) Możesz pominąć ten krok, jeśli używasz Cloud Shell lub środowiska lokalnego, w którym biblioteki klienta są już zainstalowane. Tę czynność musisz wykonać tylko wtedy, gdy tworzysz aplikację lokalnie i nie masz zainstalowanych tych narzędzi (lub nie masz pewności, czy są zainstalowane). Najłatwiej jest użyć pip (lub pip3) do instalacji (w razie potrzeby w tym do zaktualizowania samego pip):

pip install -U pip google-api-python-client oauth2client

Potwierdź instalację

To polecenie instaluje bibliotekę klienta oraz wszystkie pakiety, od których jest ona zależna. Niezależnie od tego, czy używasz Cloud Shell, czy własnego środowiska, sprawdź, czy biblioteka klienta jest zainstalowana. W tym celu zaimportuj niezbędne pakiety i upewnij się, że nie ma błędów importu (ani danych wyjściowych):

python3 -c "import googleapiclient, httplib2, oauth2client"

Jeśli zamiast tego użyjesz języka Python 2 (w Cloud Shell), zobaczysz ostrzeżenie, że jego obsługa została wycofana:

*******************************************************************************
Python 2 is deprecated. Upgrade to Python 3 as soon as possible.
See https://cloud.google.com/python/docs/python2-sunset

To suppress this warning, create an empty ~/.cloudshell/no-python-warning file.
The command will automatically proceed in seconds or on any key.
*******************************************************************************

Gdy uda Ci się uruchomić polecenie importu „test” (bez błędów i danych wyjściowych), możesz zacząć korzystać z interfejsów API Google.

Podsumowanie

To jest wprowadzające laboratorium kodu, więc zakładamy, że dopiero zaczynasz korzystać z interfejsów Google i interfejsów Google Workspace API. Jeśli masz już doświadczenie w tworzeniu projektów i identyfikatorów klienta OAuth do autoryzacji użytkowników. Jeśli tak jest, utwórz nowy projekt lub użyj istniejącego, utwórz nowy identyfikator klienta OAuth lub użyj istniejącego i pomiń 2 następne moduły. Przejdź bezpośrednio do sekcji „Wyświetlanie aplikacji do obsługi plików i folderów na Dysku” lub do sekcji „Zaawansowane korzystanie z konsoli deweloperskiej”, aby zapoznać się z tymi krokami z mniejszą liczbą wskazówek.

6. Określanie projektu w konsoli Cloud

Aplikacja korzystająca z interfejsów API Google wymaga projektu. Zarządzanie nimi odbywa się w Google Cloud Developers Console, czyli w „devconsole”. W tym laboratorium użyjemy tylko interfejsu Google Drive API, więc mamy magiczny link (poniżej w kroku 1), który:

  • Przekierowuje do konsoli dewelopera
  • zawiera instrukcje tworzenia nowego projektu (lub wybierania już istniejącego);
  • Automatyczne włączanie interfejsu Drive API

Zróbmy to!

  1. Otwórz stronę console.developers.google.com/start/api?id=drive i zaloguj się na konto Google.
  2. Jeśli nie masz jeszcze żadnych projektów, zobaczysz ten ekran, na którym możesz zaakceptować Warunki korzystania z interfejsów API Google:

e3b2076ba58a7cd7.png Po zaakceptowaniu warunków zostanie utworzony nowy projekt o nazwie „Mój projekt”, a interfejs Drive API zostanie automatycznie włączony. 3. Jeśli masz już utworzony projekt (np. z poprzednich zajęć), zobaczysz ten ekran: 50b3b8ace6721f1f.png Kliknij menu Utwórz projekt i wybierz istniejący projekt lub utwórz nowy. 69db3867445ad9e5.png Po dokonaniu wyboru (nowy lub istniejący projekt) interfejs Drive API zostanie automatycznie włączony. 4. Gdy interfejs Drive API zostanie włączony, zobaczysz to potwierdzenie: 365e7de1377493bb.png 5. Aby przejść do następnego kroku, kliknij Przejdź do danych logowania.

7. *Autoryzowanie żądań interfejsu API (autoryzacja użytkownika)

Jeśli masz już dane logowania autoryzacji konta użytkownika i znasz ten proces, możesz pominąć tę sekcję. Różni się od autoryzacji konta usługi, która wykorzystuje inną technikę, więc czytaj dalej.

Wprowadzenie do autoryzacji (wraz z pewnymi informacjami o uwierzytelnianiu)

Aby wysyłać żądania do interfejsów API, aplikacja musi mieć odpowiednią autoryzację. Uwierzytelnianie to podobne słowo, które opisuje dane logowania. Uwierzytelniasz się, gdy logujesz się na konto Google za pomocą loginu i hasła. Po uwierzytelnieniu kolejnym krokiem jest sprawdzenie, czy kod jest autoryzowany do uzyskiwania dostępu do danych, takich jak pliki binarne w Cloud Storage czy osobiste pliki użytkownika na Dysku Google.

Interfejsy API Google obsługują kilka rodzajów autoryzacji, ale w przypadku użytkowników interfejsów Google Workspace API najczęściej stosowana jest autoryzacja użytkownika, ponieważ przykładowa aplikacja w tym laboratorium kodu uzyskuje dostęp do danych należących do użytkowników. Użytkownicy muszą zezwolić Twojej aplikacji na dostęp do ich danych. Oznacza to, że Twój kod musi uzyskać dane logowania OAuth2 do konta użytkownika.

Aby uzyskać dane logowania OAuth2 do autoryzacji użytkownika, wróć do menedżera interfejsów API i w menu po lewej stronie wybierz kartę „Dane logowania”:

Y33PZ_rJC1y7NH7Rrvq1kN_WxZ9CppDGJK8tTSaha298Jlm5pMqgnyweIO4oX34fcLy0_VI4gihYu5wpEM_LeJg1iDAFoidhUVyfqJX3QTzODQ_OGjHLXYBxPpUvihCJi9JGwvMREw

Gdy to zrobisz, zobaczysz wszystkie swoje certyfikaty w 3 osobnych sekcjach:

ComE4qh76dwZbIehkDUm1QawHGia_qVe7w7rkmgbeo_wjWS--kqXCt4_zvm55iy_RXA8dKYKvBxIKazkcYQ8871SA_kNslbvum_n1Ju4k9qJJSMtDhPAnofcvIlqlKm1nu7PBQhmEg

Pierwszy to klucze interfejsu API, drugi to identyfikatory klientów OAuth 2.0,a ostatni to konta usługi OAuth2. My używamy tego środkowego.

Tworzenie danych logowania

Na stronie Dane logowania kliknij u góry przycisk + Utwórz dane logowania. Wyświetli się okno, w którym wybierzesz „Identyfikator klienta OAuth”:

C7jTddfrczo3GewPGCxbxX13GawtFc6FGvAPFusPc_IW-tr5M6xgXd1OzOHOUTo86WDa9fXiCITogv9b3wAgOcYM7xS3AmVNaPdTxbAynIe_sia2_x3LEPsBrdbX8NjeI2WaHRioOA

Na następnym ekranie możesz wykonać 2 działania: skonfigurować „ekran zgody” autoryzacji aplikacji i wybrać typ aplikacji:

El9_aqPQ6Q9hOsOp3JUC5qnCm_A_BVI-oCEfPk_MsvybnWBmC5lT6CtXSoZ7EQoFzrcBEzo4zF9s8CbhXyo0e-eSY3pZ1zg0BRvT0YssMMhbzEG-gP_jiO8v9q9HYTjg-QW5jJ0RDA

Jeśli nie masz skonfigurowanego ekranu zgody, w konsoli zobaczysz ostrzeżenie i musisz to zrobić. (Jeśli ekran zgody został już skonfigurowany, pomiń te kroki).

Kliknij „Skonfiguruj ekran zgody”, a następnie wybierz aplikację „Zewnętrzna” (lub „Wewnętrzna”, jeśli jesteś klientem Google Workspace [wcześniej „G Suite”]):

5w-9R6gPvUHFzODZxXy-0GEhL8ZGDGNea3QtMp1FFYDv5DJ_MIDD21NEh3CzI-GKNzy6bkhH7bohxOG8icQTegiWlavOQhQqhSy7K31Ma3YTI9aAP3P-LmTBanPslX1cnjKLVZBi8A

Pamiętaj, że na potrzeby tego ćwiczenia nie ma znaczenia, którą opcję wybierzesz, ponieważ nie publikujesz przykładowego Codelabs. Większość osób wybierze opcję „Zewnętrzna”, aby przejść do bardziej złożonego ekranu, ale wystarczy wypełnić tylko pole „Nazwa aplikacji” u góry:

8e9z_RQz8lumYbDIcBvm57_Gpptn9uhrVQHoRzJ01AJNOFmXloDO7Eg3hhzJZZIU2F5rR0MxTCw-oXVFCq683xUwD4O33pXeuFsOMtM8EZhyjDoYc8Kv4hEoaG0Ztq9ePx6De7YmfA

W tym momencie potrzebujesz tylko nazwy aplikacji, więc wybierz taką, która odzwierciedla Codelabs, który wykonujesz, a potem kliknij Zapisz.

Tworzenie identyfikatora klienta OAuth (uwierzytelnianie konta użytkownika)

Wróć na kartę Dane logowania, aby utworzyć identyfikator klienta OAuth2. Zobaczysz tu różne identyfikatory klienta OAuth, które możesz utworzyć:

f8reuhsxOUNLcVrEIyRVsmP_fX_ceIlLvEKql1YHwSPW9jk9Mm9fJ0UlfUoi8eRN3QQXar4xtpo071zj6LSczNN7TYY8zB96Dn6ICZuvCAtjIgJSKdMSlX-ZhMuSWFpxxv661aUemw

Tworzymy narzędzie wiersza poleceń, czyli Inne. Wybierz tę opcję, a potem kliknij przycisk Utwórz. Wybierz nazwę identyfikatora klienta, która odzwierciedla tworzoną aplikację, lub po prostu zaakceptuj nazwę domyślną, która zwykle brzmi „Inny klient N”.

Zapisywanie danych logowania

  1. Pojawi się okno z nowymi danymi logowania. Aby je zamknąć, kliknij OK.

rAwekj_GNEuVwGbZOYYlGDQjlu4flE61OPEZIUmwMI5vGi3W365UwVCxi0mVNhg4WZSSczZywrZZ6NDM_U0FJ4b-TOIMEC189uybOJjgn8F_axesVMopel9RlehRBXdEFhN4d41WGQ

  1. Wróć na stronę Dane logowania, przewiń w dół do sekcji „Identyfikatory klientów OAuth 2.0” i kliknij ikonę pobierania aAmje6kT_xSUM4BKIlPREpjosx7C_xxwpWqBgiGVfVWxQ8nnQOfxTPhuU0QwSnmbjykZffGrqyP1nnKrEQ7D7OqYaGw_Uzscs9gX2RwwP4AmvtHIiTFLa0gkprzJSjG9pQSx7HtmSQ w prawym dolnym rogu nowo utworzonego identyfikatora klienta. x-vb-sKZy-X8a1X4uTsBWotSd4wn0PGt4mHMNv6DUrq5J5ihpujUyTiIVr5SHw0p2ZDy0KTP-zqOaFX-Az9BYDWG90KNFmsRLTUOo1mUVk7dYRJiK3VwYJNU0bbxjsbbpqcTr5_oLw
  2. Otworzy się okno dialogowe, w którym możesz zapisać plik o nazwie client_secret-LONG-HASH-STRING.apps.googleusercontent.com.json, prawdopodobnie w folderze Pobrane. Zalecamy skrócenie nazwy do prostszej, np. client_secret.json (takiej jak w przykładowej aplikacji), a następnie zapisanie jej w katalogu lub folderze, w którym w tym laboratorium kodowania utworzysz przykładową aplikację.

Podsumowanie

Mając dane logowania, możesz teraz uzyskać dostęp do interfejsu Drive API z poziomu aplikacji. Pamiętaj, że identyfikator klienta OAuth służy do tego, aby użytkownicy mogli przyznawać Twojej aplikacji uprawnienia dostępu do swoich danych na Dysku Google.

NOTE więcej informacji o ręcznym tworzeniu projektów, włączaniu interfejsów API i uzyskiwaniu danych logowania (bez użycia powyższego „kreatora”) znajdziesz po zakończeniu tego szkolenia.

8. Wyświetlanie aplikacji do obsługi plików i folderów na Dysku

W lokalnym środowisku programistycznym lub w Cloud Shell, w tym samym katalogu, w którym znajduje się plik danych logowania client_id.json, utwórz nowy plik Pythona o nazwie drive_list.py i dodaj te wiersze kodu:

from __future__ import print_function

from googleapiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools

SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
    creds = tools.run_flow(flow, store)
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))

files = DRIVE.files().list().execute().get('files', [])
for f in files:
    print(f['name'], f['mimeType'])

Struktura aplikacji

Aplikacja składa się z 3 głównych sekcji:

  1. Importy Pythona, które umożliwiają korzystanie z funkcji biblioteki
  2. Uzyskiwanie danych logowania do aplikacji
  3. Pobieranie i wyświetlanie nazw plików i folderów oraz typów MIME na Dysku Google użytkownika

NOTE po zakończeniu tego ćwiczenia z programowania możesz dokładniej przeanalizować kod i zapoznać się z wyjaśnieniami poszczególnych wierszy.

Uruchamianie aplikacji

Nazwij plik np. drive_list.py. Gdy uruchomisz skrypt po raz pierwszy, nie będzie on mieć uprawnień do uzyskiwania dostępu do plików użytkownika na Dysku (Twoich). Dane wyjściowe wyglądają tak po wstrzymaniu wykonywania:

$ python3 ./drive_list.py
/usr/local/lib/python3.6/site-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access storage.json: No such file or directory
 warnings.warn(_MISSING_FILE_MESSAGE.format(filename))

Your browser has been opened to visit:
  https://accounts.google.com/o/oauth2/auth?client_id=LONG-STRING.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly.metadata&access_type=offline&response_type=code

If your browser is on a different machine then exit and re-run this
application with the command-line parameter

 --noauth_local_webserver

z lokalnego środowiska programistycznego,

Skrypt wiersza poleceń zostanie wstrzymany, a w oknie przeglądarki pojawi się okno uprawnień OAuth2:

c2648f37bcb7a0c1.png

W tym miejscu aplikacja prosi użytkownika o uprawnienia, o które prosi kod (za pomocą zmiennej SCOPES). W tym przypadku jest to możliwość wyświetlania metadanych pliku na Dysku Google użytkownika. Tak, w kodzie zakresy uprawnień są wyświetlane jako identyfikatory URI, ale w oknie dialogowym procesu OAuth2 są tłumaczone na język określony przez ustawienia regionalne. Użytkownik musi wyraźnie zezwolić na żądane uprawnienia. W przeciwnym razie część kodu „run flow” (uruchom przepływ) zgłosi wyjątek, a skrypt nie będzie kontynuowany.

NOTE niektórzy użytkownicy mają kilka przeglądarek, a prośba o autoryzację może pojawiać się w przeglądarce, której nie używają najczęściej. W takim przypadku skopiuj cały adres URL z okna przeglądarki, której nie chcesz używać, i wklej go na pasku adresu przeglądarki, której chcesz używać.

Z Cloud Shell

Jeśli nie zwrócisz uwagi i uruchomisz program w Cloud Shell, nie otworzy się żadne okno przeglądarki, co uniemożliwi Ci dalsze działanie. Zauważ, że komunikat diagnostyczny u dołu był przeznaczony dla Ciebie:

If your browser is on a different machine then exit and re-run this
application with the command-line parameter

 --noauth_local_webserver

W takim przypadku otrzymasz te wyniki:

$ python3 drive_list.py --noauth_local_webserver
/usr/local/lib/python3.7/site-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access storage.json: No such file or directory
 warnings.warn(_MISSING_FILE_MESSAGE.format(filename))

Go to the following link in your browser:

  https://accounts.google.com/o/oauth2/auth?client_id=xxx.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly.metadata&access_type=offline&response_type=code

Enter verification code:

Postępując zgodnie z instrukcjami i otwierając w innej karcie przeglądarki ten adres URL, uzyskasz środowisko niemal identyczne z opisanym powyżej w przypadku lokalnych środowisk programistycznych. Główna różnica polega na tym, że na końcu pojawi się jeszcze jeden ekran z kodem weryfikacyjnym, który należy wpisać w Cloud Shell:

f6da2c335fb7c6a.png

Wytnij ten kod i wklej go w oknie terminala.

Podsumowanie

Gdy użytkownik kliknie Zezwól lub wklei kod weryfikacyjny w odpowiednim miejscu, aplikacja będzie (nadal) działać, więc spodziewaj się danych wyjściowych składających się z plików i folderów na Dysku oraz ich typów MIME. Oto przykład z jednego z naszych kont testowych:

$ python3 ./drive_list.py
Travel expenses application/vnd.google-apps.spreadsheet
Gmail Add-ons codelab application/vnd.google-apps.script
Google Workspace Developer Intro application/vnd.google-apps.presentation
Baseball Sheets application/vnd.google-apps.folder
My Resume application/vnd.google-apps.document
  . . .

Zwróć uwagę, że w kolejnych wykonaniach nie będziesz już proszony(-a) o autoryzację (ponieważ została ona zapisana w pamięci podręcznej bibliotek autoryzacji) i od razu przejdziesz do danych wyjściowych. Czy to nie ekscytujące, że po raz pierwszy widzisz swoje dokumenty w terminalu? Też tak myślimy.

9. Podsumowanie

Teraz możesz dowiedzieć się więcej o funkcjach interfejsu Drive API lub poznać inne interfejsy API Google Workspace (Gmail, Dokumenty Google, Arkusze, Prezentacje, Kalendarz) i inne interfejsy API Google (Mapy, Analytics, YouTube itp.). Gratulujemy dotarcia do końca!

Kod zaprezentowany w tym module jest również dostępny w repozytorium GitHub: github.com/googlecodelabs/gsuite-apis-intro. (Staramy się na bieżąco uwzględniać w tym module wszystkie zmiany wprowadzane w repozytorium). Możemy przejść dalej? Poniżej znajdziesz różne materiały, które pomogą Ci lepiej poznać informacje przedstawione w tym module lub poznać inne sposoby korzystania z technologii Google.

Jak wspomnieliśmy wcześniej, jeśli nie jesteś regularnym programistą Pythona, możesz wykonać ten przykład w swoim ulubionym języku programowania. Biblioteki klienta dla obsługiwanych języków są dostępne tutaj.

Dodatkowe badania

Masz już pewne doświadczenie w korzystaniu z interfejsu Drive API. Poniżej znajdziesz kilka zalecanych ćwiczeń, które pomogą Ci rozwinąć umiejętności:

  1. Pliki ZIP: napisz aplikację, która tworzy kopie zapasowe wielu archiwów ZIP na Dysku, rozpakowując je na bieżąco, tak aby nazwa każdego pliku ZIP była nazwą folderu, do którego trafiają te pliki. DODATKOWE PUNKTY: obsługa rekurencyjnych archiwów ZIP w innych plikach ZIP z folderami Dysku osadzonymi w innych folderach. Jeśli się poddasz, zapoznaj się z tą przykładową aplikacją Node.js.
  2. Albumy ze zdjęciami: napisz początek narzędzia do generowania albumów ze zdjęciami, które przesyła wiele obrazów na Dysk Google i porządkuje je w osobnych folderach według sygnatury czasowej i geolokalizacji. DODATKOWE ZADANIE: znajdź bibliotekę do manipulacji obrazami o otwartym kodzie źródłowym i połącz wszystkie zdjęcia w każdym folderze, aby przedstawić wydarzenia, w których mogłeś(-aś) uczestniczyć (wycieczka, obiad itp.).
  3. Poznaj GCP: napisz aplikację, która łączy Google Workspace i Google Cloud Platform (GCP). Napisz narzędzie, które tworzy kopie zapasowe plików obrazów z Dysku Google w Google Cloud Storage (GCS), czyli w innym rozwiązaniu do „przechowywania plików w chmurze”. Wbrew pozorom korzystanie z GCS będzie prostsze niż z Dysku ze względu na zaawansowane biblioteki klienta.
  4. Analizowanie i rejestrowanie: rozszerz rozwiązanie do poziomu 3, analizując każde zdjęcie, którego kopię zapasową utworzono, poprzez przekazanie go do interfejsu Google Cloud Vision API i uzyskanie najlepszych (3, 5, 10) „etykiet” tego, co interfejs API widzi na tych zdjęciach. W przypadku każdego obrazu utwórz wiersz w arkuszu Google zawierający analizę z Cloud Vision oraz lokalizację kopii zapasowej w GCS. Jeśli się poddasz, zapoznaj się z tymi ćwiczeniami dotyczącymi Pythona.

10. Dodatkowe materiały

Dokumentacja

Wiadomości i aktualności

Inne ćwiczenia z programowania

Początkowy

Średnio zaawansowany

Zaawansowane

Aplikacje z materiałami źródłowymi

11. *Szczegółowe wyjaśnienie dotyczące aplikacji

Ta opcjonalna sekcja służy do samodzielnej nauki po zakończeniu sesji, aby uzupełnić wszelkie luki, które mogły się pojawić, lub do dalszych badań.

Importy Pythona, które umożliwiają korzystanie z funkcji biblioteki

from __future__ import print_function

from googleapiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools
  • Pierwsza instrukcja import umożliwia uruchomienie tego kodu w Pythonie 2. Jeśli używasz tylko Pythona 3, możesz ją całkowicie pominąć.
  • Jedna z wytycznych dotyczących stylu Pythona polega na oddzielaniu importów biblioteki standardowej i modułów innych firm – do tego służy pusta linia.
  • Kolejne 3 importy wprowadzają niezbędne klasy i funkcje z biblioteki klienta interfejsów API Google… wszystkie są potrzebne do napisania tej aplikacji. Oto ich krótkie opisy:
  • googleapiclient skupia się na łączeniu z interfejsami API Google.
  • httplib2 udostępnia klientowi HTTP do użycia w aplikacji.
  • oauth2client pomaga nam zarządzać danymi logowania OAuth2.

Autoryzacja i uzyskiwanie danych logowania aplikacji

SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
    creds = tools.run_flow(flow, store)
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))
  • Uprawnienia aplikacjiSCOPES to uprawnienia, o które aplikacja będzie prosić użytkownika, który ją uruchamia. Aby chronić dane użytkowników, aplikacje nie mogą działać bez przyznania im uprawnień.
  • Sprawdzoną metodą jest używanie najbardziej restrykcyjnych uprawnień, których aplikacja potrzebuje do działania. Dlaczego?
  • Czy nie irytuje Cię, gdy aplikacja prosi o dużą liczbę uprawnień podczas instalacji lub uruchamiania? A to ciekawostka… Teraz to Ty prosisz użytkowników o wyrażenie zgody na te uprawnienia. Używanie bardziej restrykcyjnych zakresów sprawia, że użytkownicy chętniej instalują aplikację, ponieważ prosisz o mniejszy dostęp.
  • Większość zakresów wygląda jak długie adresy URL i nie inaczej jest w przypadku zakresu metadanych Dysku.
SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
  • Aby aplikacje mogły komunikować się z serwerami Google, wymagany jest token. Prawidłowe tokeny zwracane przez Google będą zapisywane w pliku pamięci tokenów storage.json. Jeśli nie zapiszesz tych tokenów, przy każdym uruchomieniu aplikacji będziesz musiał(a) ponownie ją autoryzować.
store = file.Storage('storage.json')
  • Aplikacja najpierw sprawdza, czy w pamięci są już prawidłowe dane logowania (patrz instrukcja warunkowa if).
creds = store.get()
if not creds or creds.invalid:
  • Jeśli nie masz danych logowania lub wygasły, musisz utworzyć nową ścieżkę autoryzacji [za pomocą oauth2client.client.flow_from_clientsecrets()] na podstawie identyfikatora klienta OAuth i klucza tajnego w pobranym pliku client_id.json].
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
  • Gdy aplikacja ma już przepływ, musi go wykonać, aby wyświetlić użytkownikowi ekran uprawnień OAuth2 [za pomocą oauth2client.tools.run_flow()] opisany i zilustrowany powyżej.
    creds = tools.run_flow(flow, store)
  • Gdy użytkownicy klikną Zezwól, wyrażą zgodę na dostęp aplikacji do metadanych plików na Dysku Google, a serwery Google zwrócą tokeny umożliwiające dostęp do interfejsu API. Są one zwracane jako creds i przechowywane w pamięci podręcznej w pliku storage.json.
  • Na tym etapie aplikacja ma już prawidłowe dane logowania do wywoływania interfejsów API. Wywołanie googleapiclient.discovery.build() tworzy punkt końcowy usługi dla używanego interfejsu API.
  • Aby użyć build(), podaj nazwę interfejsu API ('drive') i żądaną wersję (obecnie 'v3').
  • Ostatni parametr to klient HTTP, który będzie używany do zaszyfrowanych wywołań interfejsu API.
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))

Pobieranie i wyświetlanie pierwszych 100 plików/folderów na Dysku oraz typów MIME

files = DRIVE.files().list().execute().get('files', [])
for f in files:
    print(f['name'], f['mimeType'])
  • Następny wiersz kodu wywołuje metodę list() w kolekcji files() interfejsu Drive API, aby utworzyć żądanie, które jest natychmiast wywoływane za pomocą execute(). Zwracany jest obiekt Pythona dict, z którego pobieramy klucz 'files', aby uzyskać 100 nazw plików i folderów z Dysku Google użytkownika (lub mniej, jeśli masz mniej plików).
  • Dlaczego 100? Jest to domyślna wartość z DRIVE.files().list(). Jeśli chcesz zmienić tę liczbę, np. na 10 plików lub 1000, dodaj do żądania parametr pageSize: DRIVE.files().list(pageSize=10). Więcej opcji znajdziesz w dokumentacji.
  • Ostatnia część skryptu przechodzi w pętli przez każdy plik i wyświetla jego nazwę oraz typ MIME.

Gratulacje! Właśnie napisano pierwszą aplikację, która korzysta z interfejsu Google REST API. Oprócz importów i kodu autoryzacji ten skrypt to tylko kilka linijek kodu (widocznych powyżej). Większość interfejsów API Google działa w podobny sposób. Wystarczy utworzyć punkty końcowe usługi dla każdego interfejsu API, którego chcesz używać.

Korzystanie z więcej niż jednego interfejsu API Google w aplikacji

Tak, w tej samej aplikacji możesz używać więcej niż jednego interfejsu API. Oto fragment kodu w Pythonie dla aplikacji, która ponownie wykorzystuje tego samego klienta HTTP i tworzy punkty końcowe usługi dla 3 interfejsów API Google (tak, również z 3 różnymi SCOPES):

SCOPES = (
    'https://www.googleapis.com/auth/drive',
    'https://www.googleapis.com/auth/spreadsheets.readonly',
    'https://www.googleapis.com/auth/presentations',
)

    . . .

HTTP   = creds.authorize(Http())
DRIVE  = discovery.build('drive',  'v3', http=HTTP)
SHEETS = discovery.build('sheets', 'v4', http=HTTP)
SLIDES = discovery.build('slides', 'v1', http=HTTP)

Wyobrażamy sobie, że ten kod może być częścią aplikacji, która generuje wiele prezentacji (interfejs Slides API) na podstawie danych z arkusza kalkulacyjnego (interfejs Sheets API) i używa szablonu slajdów, który jest kopiowany (interfejs Drive API) dla każdej wygenerowanej prezentacji. Taka aplikacja nie istnieje, ale możesz utworzyć coś podobnego, korzystając z 2 przykładowych aplikacji utworzonych przez zespół Google Workspace jako elementów składowych:

  • Zastępowanie tekstu i obrazów w slajdach ( post na blogu i film) – korzysta z interfejsu Drive API, aby skopiować szablon prezentacji, a następnie z interfejsu Slides API, aby zmienić tekst i symbole zastępcze obrazów.
  • Generowanie slajdów na podstawie danych z arkusza kalkulacyjnego ( post na blogu i film) – odczytuje dane z arkusza kalkulacyjnego (interfejs Sheets API) i tworzy na ich podstawie slajdy (interfejs Slides API).

Twoje wyzwanie: stwórz tę aplikację!

12. *Zaawansowane korzystanie z konsoli dewelopera

W tej opcjonalnej sekcji opisujemy, jak tworzyć projekty w konsoli dewelopera, włączać interfejsy API i uzyskiwać dane logowania bez korzystania z kreatora, jak w przypadku powyższego ćwiczenia. Jest to przeznaczone dla średnio zaawansowanych użytkowników, którzy czują się na siłach, aby zrobić to ręcznie, lub chcą się tego nauczyć.

Określanie projektu w konsoli Cloud

Za każdym razem, gdy piszesz aplikację korzystającą z interfejsów API Google, musisz mieć projekt. Możesz ponownie wykorzystać istniejący projekt lub utworzyć nowy. Możesz to zrobić w konsoli Cloud. Niektóre codelaby zawierają magiczny link (np. kreator konfiguracji), który pozwala szybko rozpocząć pracę, pomijając wiele wymaganych kroków. Nie wszystkie jednak tak działają, dlatego te instrukcje mają charakter ogólny.

Projekty możesz tworzyć na większości ekranów w konsoli Cloud, o ile zalogujesz się za pomocą danych logowania Google i u góry konsoli zobaczysz menu projektu. Pamiętaj, że większość zrzutów ekranu pochodzi z Menedżera interfejsów API, czyli z Konsoli deweloperów (możesz ją łatwo otworzyć, klikając „Menedżer interfejsów API” w menu po lewej stronie lub wpisując w przeglądarce adres console.developers.google.com).

  1. Jeśli nie masz jeszcze żadnych projektów, możesz przejść do…
  2. strona Panel: Gwkk2zcSPOHlRzCGsmBDqfdsEMopOgJyJzh6TunpVFOP3R7bN0-iGt81mNueGxoAei6wCqgQBENsamw3v4ozZJtQgKva6v_90dYJ-rvQjUn9U89avlG1tepDYT9HHjZmYixLD0hACQ
  3. strona Biblioteka: NqfejNuo6fJfiTXERiCNAFTnno1JGgudf7M2zVyM9DzXP4E6ruoVxHvFQOPW-HFL5SZvm-WohzPTf7njBS9VCwuu4XnwhQ7CB83tNkH0jsYEx31hO6UMBVHPJS1BMjidg5kh-c7MEw
  4. lub całkowicie pusta strona: LcJ-wgOFlYa9uZm46fwUkfFTkXIcbhuk607KDaCz8_8NM09RHblz6T5JoWhH7uwSE2q6hKW9XnlutzUqd8yvRAEXFzQjqNNTuscj19yKGkMjbPixeUB8-F1y4Tz7eCpeOEzBUw70yw Jeśli pojawi się ta trzecia opcja, odśwież przeglądarkę, aby przejść na stronę Biblioteka.
  5. Na stronie Panel lub Biblioteka kliknij selektor projektu u góry strony: 3f5REVgveKDcJ8wG2C9gduFBftJb6RNtdQQJ79vwFmQCMU8_t_vxja8jPGIK-ZrpjSqGkRkY4k02xth-7FWNPj4GZUdcBmKQe97LporGaLvwIFzzR5wtH5mEEoA1a74_fnrh9YAqqg
  6. Następnie pojawi się okno selektora. Aby utworzyć nowy projekt, kliknij „+” po prawej stronie: jNzs1bp1eWkpJT3S3AGTm9ejYT2mB3rEd1QajOhO0AR3YxcwaCcF4WlMzdmgOFtlIPQfGEMUysM6m7r89_Fc0Dyy--mjPhCEKdLRZjaozLOvoZOzKtIxdMoWFHCVc2N1K-2HES_k4Q
  7. Po kliknięciu „+” pojawi się strona Nowy projekt. Domyślnie wszystkie konta klientów mają 12 projektów. Zanim utworzysz pierwszy projekt, musisz zaakceptować Warunki korzystania z interfejsów API Google: bCB0sQ6k5nfrajlhc-S61MVzyYYBqu6XVNKeRDzXNvKZUNlSeVJSLbkP8sPNi5A-5hWIFzhsQ5R_ER9BBb2bE_B02c1neY2iO5SSe6XDFldppsXbkWm63-0l3ugtSDQS-TeM1d773w

Po wykonaniu tych czynności pytania dotyczące prośby o adres e-mail i Warunków korzystania z usługi nie będą się już pojawiać podczas tworzenia kolejnych projektów:

Pj31ZKoAAnw_JiSz8io7e4yC2Xh3voETusvePf0DS64IMB4aVy9CtANg2r-2NgPxLjbqcfd-Vs33ZNdN7Diz7sZo3j-MKS83SuNXlhGT8ivdhpIvizP1dsYeK1MBQ4HlDZA5aQkIhg 5. Jeśli w przeszłości utworzono co najmniej 1 projekt, po zalogowaniu się przejdziesz do panelu ostatniego projektu, nad którym pracowano. Następnie utwórz nowy projekt, wybierając Wybierz projekt > +. Po utworzeniu nowego projektu wrócisz na stronę Panel: ana4q1H1Q8KNTBEVb62Cc6NVA8VZbxb6BLgf4-bLqLV-p7n8UWv3WW3FN-49CE0x1kARav3pelxOBwNuUDELmitMRFhUNXuaw9-CH9DO3Lek_ifnaI3ZsxSy67Z1UsBO95SPFqlf8Q

Projekt został utworzony. Możesz teraz wybrać interfejsy API, których chcesz używać w projekcie.

Włączanie interfejsów API Google

Zanim zaczniesz korzystać z interfejsów API Google, musisz je włączyć. Poniższy przykład pokazuje, jak włączyć interfejs Cloud Vision API. W tym laboratorium możesz używać co najmniej jednego interfejsu API. Przed użyciem musisz wykonać podobne czynności, aby je włączyć.

Z Cloud Shell

W Cloud Shell możesz włączyć interfejs API za pomocą tego polecenia:

gcloud services enable vision.googleapis.com

W konsoli Cloud

Możesz też włączyć Vision API w Menedżerze interfejsów API. W konsoli Cloud otwórz Menedżera interfejsów API i kliknij „Biblioteka”.

mg03by3QV6kco0rVVV_8IA6VobAoMG4Yoyl-PofNM0dHK8IcoDmpoLUwWeiKFFjpxHWlS1td5-0n7kNkfqHVhSsTSW_hUMvRu3D72g3LCFb7u4v4bla_Z4XyonTVK8PpigMLJcE01g

Na pasku wyszukiwania zacznij wpisywać „vision”, a następnie wybierz Vision API, gdy się pojawi. Podczas pisania może to wyglądać mniej więcej tak:

B6fWWsVhymufgQx6oGIq4sgukK6JQ1VoguVOrSNf_anQb6Cv6RTLtsjx5Qdeu3-uO8-8PyqwZLYdDDjYW5o56R47cnsd_88RKTMqNkpFeDESW2hmBM_7FK2UAMz1_216yXERYSp_JA

Wybierz Cloud Vision API, aby wyświetlić okno dialogowe widoczne poniżej, a następnie kliknij przycisk „Włącz”:

D-MONPLi0UWH6Dp607Dod6JF-LJQZIiUQEPQNKM4Y0mSt09KfipbeeXRAE6cokArBYTfL9VQoONc4L0jlnsUYLsNytQIPfSKr9lCDrXmrrx-1w64LeWWa-byDxcyYWZdCI0mAcVzBw

Koszt

Z wielu interfejsów API Google można korzystać bez opłat, ale korzystanie z GCP (usług i interfejsów API) jest płatne. Podczas włączania interfejsu Vision API (jak opisano powyżej) możemy poprosić Cię o podanie aktywnego konta rozliczeniowego. Przed włączeniem tej funkcji użytkownik powinien zapoznać się z informacjami o cenach interfejsu Vision API. Pamiętaj, że niektóre usługi Google Cloud Platform (GCP) mają poziom „Zawsze bezpłatny”, który musisz przekroczyć, aby ponieść opłaty. Na potrzeby tego samouczka każde wywołanie interfejsu Vision API jest wliczane do tego bezpłatnego poziomu. Jeśli w sumie (w każdym miesiącu) nie przekroczysz limitów, nie poniesiesz żadnych opłat.

Niektóre interfejsy API Google, np. Google Workspace ma pokryte wykorzystanie w ramach subskrypcji miesięcznej, więc nie ma bezpośredniego rozliczenia za korzystanie np. z interfejsów API Gmaila, Dysku Google, Kalendarza, Dokumentów, Arkuszy i Prezentacji. Różne usługi Google są rozliczane w różny sposób, dlatego zapoznaj się z dokumentacją interfejsu API, aby uzyskać te informacje.

Podsumowanie

W tym laboratorium kodu musisz włączyć tylko Google Drive API, więc postępuj zgodnie z powyższymi instrukcjami i wyszukaj „Dysk”. Gdy ta funkcja zostanie włączona, przejdź dalej.

Autoryzowanie żądań interfejsu API (autoryzacja użytkownika)

Wprowadzenie do autoryzacji (wraz z pewnymi informacjami o uwierzytelnianiu)

Aby wysyłać żądania do interfejsów API, aplikacja musi mieć odpowiednią autoryzację. Uwierzytelnianie to podobne słowo, które opisuje dane logowania. Uwierzytelniasz się, gdy logujesz się na konto Google za pomocą loginu i hasła. Po uwierzytelnieniu kolejnym krokiem jest sprawdzenie, czy kod jest autoryzowany do uzyskiwania dostępu do danych, takich jak pliki binarne w Cloud Storage czy osobiste pliki użytkownika na Dysku Google.

Interfejsy API Google obsługują kilka rodzajów autoryzacji, ale w przypadku użytkowników interfejsów Google Workspace API najczęściej stosowana jest autoryzacja użytkownika, ponieważ przykładowa aplikacja w tym laboratorium kodu uzyskuje dostęp do danych należących do użytkowników. Użytkownicy muszą zezwolić Twojej aplikacji na dostęp do ich danych. Oznacza to, że Twój kod musi uzyskać dane logowania OAuth2 do konta użytkownika.

Aby uzyskać dane logowania OAuth2 do autoryzacji użytkownika, wróć do menedżera interfejsów API i w menu po lewej stronie wybierz kartę „Dane logowania”:

Y33PZ_rJC1y7NH7Rrvq1kN_WxZ9CppDGJK8tTSaha298Jlm5pMqgnyweIO4oX34fcLy0_VI4gihYu5wpEM_LeJg1iDAFoidhUVyfqJX3QTzODQ_OGjHLXYBxPpUvihCJi9JGwvMREw

Gdy to zrobisz, zobaczysz wszystkie swoje certyfikaty w 3 osobnych sekcjach:

ComE4qh76dwZbIehkDUm1QawHGia_qVe7w7rkmgbeo_wjWS--kqXCt4_zvm55iy_RXA8dKYKvBxIKazkcYQ8871SA_kNslbvum_n1Ju4k9qJJSMtDhPAnofcvIlqlKm1nu7PBQhmEg

Pierwszy to klucze interfejsu API, drugi to identyfikatory klientów OAuth 2.0,a ostatni to konta usługi OAuth2. My używamy tego środkowego.

Tworzenie danych logowania

Na stronie Dane logowania kliknij u góry przycisk + Utwórz dane logowania. Wyświetli się okno, w którym wybierzesz „Identyfikator klienta OAuth”:

C7jTddfrczo3GewPGCxbxX13GawtFc6FGvAPFusPc_IW-tr5M6xgXd1OzOHOUTo86WDa9fXiCITogv9b3wAgOcYM7xS3AmVNaPdTxbAynIe_sia2_x3LEPsBrdbX8NjeI2WaHRioOA

Na następnym ekranie możesz wykonać 2 działania: skonfigurować „ekran zgody” autoryzacji aplikacji i wybrać typ aplikacji:

El9_aqPQ6Q9hOsOp3JUC5qnCm_A_BVI-oCEfPk_MsvybnWBmC5lT6CtXSoZ7EQoFzrcBEzo4zF9s8CbhXyo0e-eSY3pZ1zg0BRvT0YssMMhbzEG-gP_jiO8v9q9HYTjg-QW5jJ0RDA

Jeśli nie masz skonfigurowanego ekranu zgody, w konsoli zobaczysz ostrzeżenie i musisz to zrobić. (Jeśli ekran zgody został już skonfigurowany, pomiń te kroki).

Kliknij „Skonfiguruj ekran zgody”, a następnie wybierz aplikację „Zewnętrzna” (lub „Wewnętrzna”, jeśli jesteś klientem Google Workspace):

5w-9R6gPvUHFzODZxXy-0GEhL8ZGDGNea3QtMp1FFYDv5DJ_MIDD21NEh3CzI-GKNzy6bkhH7bohxOG8icQTegiWlavOQhQqhSy7K31Ma3YTI9aAP3P-LmTBanPslX1cnjKLVZBi8A

Pamiętaj, że na potrzeby tego ćwiczenia nie ma znaczenia, którą opcję wybierzesz, ponieważ nie publikujesz przykładowego Codelabs. Większość osób wybierze opcję „Zewnętrzna”, aby przejść do bardziej złożonego ekranu, ale wystarczy wypełnić tylko pole „Nazwa aplikacji” u góry:

8e9z_RQz8lumYbDIcBvm57_Gpptn9uhrVQHoRzJ01AJNOFmXloDO7Eg3hhzJZZIU2F5rR0MxTCw-oXVFCq683xUwD4O33pXeuFsOMtM8EZhyjDoYc8Kv4hEoaG0Ztq9ePx6De7YmfA

W tym momencie potrzebujesz tylko nazwy aplikacji, więc wybierz taką, która odzwierciedla Codelabs, który wykonujesz, a potem kliknij Zapisz.

Tworzenie identyfikatora klienta OAuth (uwierzytelnianie konta użytkownika)

Wróć na kartę Dane logowania, aby utworzyć identyfikator klienta OAuth2. Zobaczysz tu różne identyfikatory klienta OAuth, które możesz utworzyć:

f8reuhsxOUNLcVrEIyRVsmP_fX_ceIlLvEKql1YHwSPW9jk9Mm9fJ0UlfUoi8eRN3QQXar4xtpo071zj6LSczNN7TYY8zB96Dn6ICZuvCAtjIgJSKdMSlX-ZhMuSWFpxxv661aUemw

Tworzymy narzędzie wiersza poleceń, czyli Inne. Wybierz tę opcję, a potem kliknij przycisk Utwórz. Wybierz nazwę identyfikatora klienta, która odzwierciedla tworzoną aplikację, lub po prostu zaakceptuj nazwę domyślną, która zwykle brzmi „Inny klient N”.

Zapisywanie danych logowania

  1. Pojawi się okno z nowymi danymi logowania. Aby je zamknąć, kliknij OK.

rAwekj_GNEuVwGbZOYYlGDQjlu4flE61OPEZIUmwMI5vGi3W365UwVCxi0mVNhg4WZSSczZywrZZ6NDM_U0FJ4b-TOIMEC189uybOJjgn8F_axesVMopel9RlehRBXdEFhN4d41WGQ

  1. Wróć na stronę Dane logowania, przewiń w dół do sekcji „Identyfikatory klientów OAuth 2.0” i kliknij ikonę pobierania aAmje6kT_xSUM4BKIlPREpjosx7C_xxwpWqBgiGVfVWxQ8nnQOfxTPhuU0QwSnmbjykZffGrqyP1nnKrEQ7D7OqYaGw_Uzscs9gX2RwwP4AmvtHIiTFLa0gkprzJSjG9pQSx7HtmSQ w prawym dolnym rogu nowo utworzonego identyfikatora klienta. x-vb-sKZy-X8a1X4uTsBWotSd4wn0PGt4mHMNv6DUrq5J5ihpujUyTiIVr5SHw0p2ZDy0KTP-zqOaFX-Az9BYDWG90KNFmsRLTUOo1mUVk7dYRJiK3VwYJNU0bbxjsbbpqcTr5_oLw
  2. Otworzy się okno dialogowe, w którym możesz zapisać plik o nazwie client_secret-LONG-HASH-STRING.apps.googleusercontent.com.json, prawdopodobnie w folderze Pobrane. Zalecamy skrócenie nazwy do prostszej, np. client_secret.json (takiej jak w przykładowej aplikacji), a następnie zapisanie jej w katalogu lub folderze, w którym w tym laboratorium kodowania utworzysz przykładową aplikację.