// Credentials

Google OAuth2 na komputerze

▸ // rozdziały lekcji

Google OAuth2 na komputerze - Wolniś: „Zgoda kliknięta. Połączone”

✓

Na komputerze (localhost)

Działa. Google wpuszcza adres powrotu na localhost bez HTTPS.

!

Na serwerze

Tylko z domeną i HTTPS. Pod samym adresem IP nie zadziała - patrz następna lekcja.

Search Console, Arkusze Google, Dysk, Gmail - wszystkie usługi Google łączysz z n8n tym samym sposobem: przez OAuth2. Ty logujesz się swoim kontem Google, a n8n dostaje token, którym od tej chwili pyta Google w twoim imieniu.

Konfiguracja zajmuje około 15 minut i robisz ją raz. Jeden klient OAuth obsłuży wszystkie usługi Google, zmieniasz tylko zakres uprawnień, czyli scope.

Krok 1 - projekt w Google Cloud

  1. Wejdź na console.cloud.google.com i zaloguj się kontem Google, które ma dostęp do usługi, na przykład do Search Console.
  2. Na górze kliknij wybór projektu, potem Nowy projekt (New project). Nazwij go na przykład n8n i utwórz.
  3. Upewnij się, że na górze jest wybrany nowy projekt. Na stronie powitalnej konsoli widzisz jego nazwę przy Pracujesz w (Working in).

Strona powitalna Google Cloud Console po polsku - wybrany projekt i skróty, w tym Interfejsy API i usługi

Konsola Google Cloud mówi w języku twojego konta Google. W tej lekcji podaję nazwy po polsku, a angielskie w nawiasie.

Krok 2 - włącz API usługi

Każdą usługę Google włączasz w projekcie osobno. Bez tego logowanie się uda, a workflow i tak dostanie błąd.

  1. Menu po lewej, Interfejsy API i usługi (APIs & Services), potem Biblioteka (Library).
  2. Wyszukaj API i kliknij Włącz (Enable):
    • Search Console: Google Search Console API,
    • Arkusze: Google Sheets API,
    • Dysk: Google Drive API.

Menu Google Cloud - Interfejsy API i usługi z podmenu: Biblioteka, Dane logowania, Ekran zgody OAuth

Krok 3 - ekran zgody

Ekran zgody to okno, które zobaczysz przy logowaniu: „aplikacja n8n chce dostępu do twojego konta".

  1. Menu po lewej, Interfejsy API i usługi, potem Ekran zgody OAuth (OAuth consent screen). Otworzy się Platforma uwierzytelniania Google (Google Auth Platform). Kliknij Get started.
  2. App name: n8n. User support email: twój e-mail.
  3. Audience: wybierz External.
  4. Contact information: twój e-mail. Zaakceptuj zasady i kliknij Create.

Przełącz aplikację na „In production"

To jeden przycisk, który oszczędzi ci szukania błędu za tydzień.

W zakładce Odbiorcy (Audience) aplikacja ma na start status Testing. W tym statusie Google wydaje token odświeżania ważny tylko 7 dni. Po tygodniu workflow przestaje działać, choć niczego nie zmieniłeś. Kliknij Publish app i potwierdź.

Haczyk. Aplikacja w produkcji, ale niezweryfikowana przez Google, przy logowaniu pokaże ostrzeżenie „Google nie zweryfikował tej aplikacji". To twoja własna aplikacja, więc klikasz Zaawansowane, potem Przejdź do n8n. Weryfikacji nie potrzebujesz, dopóki łączysz tylko własne konto. Google pozwala niezweryfikowanej aplikacji na 100 logowań z wrażliwymi zakresami, więc na własne potrzeby starczy z zapasem.

Krok 4 - adres powrotu z n8n

  1. W n8n otwórz Overview, zakładka Credentials, i kliknij Create credential.
  2. Wybierz typ:
    • do Search Console przez węzeł HTTP Request, jak w NawiSEO: Google OAuth2 API,
    • do Arkuszy albo Dysku przez ich własne węzły: Google Sheets OAuth2 API albo Google Drive OAuth2 API. Mają zakres uprawnień ustawiony z góry.
  3. Skopiuj adres z pola OAuth Redirect URL. Na komputerze to http://localhost:5678/rest/oauth2-credential/callback.

Okna w n8n nie zamykaj, zaraz do niego wrócisz.

Krok 5 - klient OAuth

  1. W Google Cloud: Platforma uwierzytelniania Google, zakładka Klienty (Clients), potem Utwórz klienta (Create client).
  2. Typ aplikacji (Application type): Aplikacja internetowa (Web application). Nazwa: n8n.

Lista Typ aplikacji w Google Cloud - Aplikacja internetowa na górze, Aplikacja komputerowa na samym dole

  1. W sekcji Autoryzowane identyfikatory URI przekierowania (Authorized redirect URIs) kliknij Dodaj URI (Add URI) i wklej adres z n8n. Musi się zgadzać co do znaku. Sekcję Autoryzowane źródła JavaScriptu zostaw pustą.
  2. Kliknij Utwórz (Create). Skopiuj Client ID i Client secret.

Haczyk. Na liście typów domyślnie stoi albo łatwo kliknąć Aplikacja komputerowa (Desktop app). Taki klient nie ma pola na adres powrotu i n8n się z nim nie połączy. Dla n8n zawsze Aplikacja internetowa. Także lokalnie: adres powrotu na localhost otwiera twoja przeglądarka, a nie serwer Google, więc Google nie musi mieć dostępu do twojego komputera.

Utwórz identyfikator klienta OAuth - typ Aplikacja internetowa, nazwa klienta i sekcja Autoryzowane identyfikatory URI przekierowania z przyciskiem Dodaj URI

Haczyk. Formularz ma dwa przyciski Dodaj URI i łatwo kliknąć pierwszy, w sekcji Autoryzowane źródła JavaScriptu. Google od razu pokaże wtedy czerwony błąd „identyfikatory URI nie mogą zawierać ścieżek ani kończyć się znakiem /". Usuń wpis ikoną kosza i wklej adres pod drugim przyciskiem, w Autoryzowanych identyfikatorach URI przekierowania. Bez ukośnika na końcu.

Błąd - adres powrotu wklejony w Autoryzowane źródła JavaScriptu, z ukośnikiem na końcu i czerwonym komunikatem o nieprawidłowym źródle

Okno Klient OAuth został utworzony - identyfikator klienta, tajny klucz klienta, ostrzeżenie o jednorazowym wyświetleniu i przycisk Pobierz JSON

Haczyk. Tajny klucz klienta (Client secret) zapisz, zanim klikniesz OK. Po zamknięciu tego okna Google nie pokaże go już ani razu. Skopiuj go do menedżera haseł albo kliknij Pobierz JSON i schowaj plik. Jeśli go zgubisz, dodasz w kliencie nowy sekret.

Krok 6 - połącz n8n z Google

  1. Wróć do okna poświadczenia w n8n. Wklej Client ID i Client Secret.

  2. Przy Google OAuth2 API wpisz w polu Scope zakres. Do Search Console tylko do odczytu: https://www.googleapis.com/auth/webmasters.readonly. Kilka zakresów oddzielasz spacją. Poświadczenie Google OAuth2 API w n8n - uzupełnione Client ID, Client Secret i Scope, przycisk Sign in with Google

  3. Kliknij Sign in with Google, wybierz konto, przejdź ostrzeżenie o niezweryfikowanej aplikacji i zaakceptuj uprawnienia.

Okno się zamknie, a w poświadczeniu zobaczysz Account connected. Gotowe.

Poświadczenie w n8n po zalogowaniu - zielony pasek Account connected z przyciskami Switch account i Disconnect

Dwa błędy, na których wykłada się prawie każdy

Błąd 401: invalid_client, „The OAuth client was not found". Google nie zna identyfikatora z pola Client ID. Sprawdź, czy wkleiłeś prawdziwy identyfikator zakończony na .apps.googleusercontent.com, bez spacji, i czy nie zamieniłeś pól Client ID i Client Secret. Świeżo utworzony klient potrzebuje czasu: Google sam uprzedza, że nowe ustawienia zaczynają działać po 5 minutach, a czasem dopiero po kilku godzinach.

Błąd redirect_uri_mismatch albo pusta strona po zalogowaniu. Adres powrotu w Google nie zgadza się z tym w n8n. Google nie zawsze pisze to wprost: czasem widzisz tylko stronę accounts.google.com/signin/oauth/error z długim kodem w adresie, zaczynającym się od authError=ChVyZWRpcmVjdF91cmlf. To właśnie zakodowane „redirect_uri_mismatch". Otwórz klienta w Google i sprawdź, czy adres z n8n jest w sekcji Autoryzowane identyfikatory URI przekierowania - znak po znaku, bez ukośnika na końcu. Najczęściej przez port. Jeśli uruchamiasz n8n na innym porcie niż 5678, na przykład 5679:5678 w pliku compose, n8n dalej pokazuje adres z 5678. Dopisz w docker-compose.yml zmienną z prawdziwym adresem i uruchom kontener ponownie:

    environment:
      - N8N_EDITOR_BASE_URL=http://localhost:5679

Potem skopiuj z n8n nowy adres powrotu i dodaj go w kliencie Google.

Podsumowanie

Masz jeden projekt w Google Cloud, jeden klient OAuth i poświadczenie w n8n połączone z twoim kontem. Kolejne usługi Google podłączasz, włączając ich API w projekcie i zakładając nowe poświadczenie z tym samym Client ID i sekretem. Aplikację przełączasz na „In production", inaczej po 7 dniach wszystko staje.

Tego poświadczenia używają lekcje NawiSEO 3, NawiSEO 4 i NawiSEO 5. Jak przenieść je na serwer, pokazuję w lekcji Google OAuth2 na serwerze (wkrótce).