Żeby asystent mógł czytać pocztę w Google Workspace i tworzyć w niej szkice, potrzebuje dostępu przez Gmail API. Są na to dwie drogi i obie opierają się na tym, co organizacja tworzy we własnym Google Cloud. draften nie ma wspólnej aplikacji, której wystarczyłoby udzielić zgody. Dotyczy to zarówno naszej usługi, jak i instalacji na własnym serwerze.
Zakładamy Google Workspace. Kont osobistych @gmail.com nie obsługujemy: nie da się nimi zalogować do draften, a ich podłączenie wymagałoby, żeby aplikację zweryfikował Google.
Którą drogę wybrać
| Za całą organizację | Kontem skrzynki | |
|---|---|---|
| W draften | rejestracja (konto usługi) w Organizacja → Integracje | przycisk Podłącz Gmail przy skrzynce |
| W Google | konto usługi z kluczem i domain-wide delegation | klient OAuth i ekran zgody typu Internal |
| Kto tworzy | administrator Google Cloud i superadministrator Google Admin | administrator Google Cloud |
| Kto musi się zalogować | nikt | właściciel każdej skrzynki, jeden raz |
| Do których skrzynek sięga | do wszystkich skrzynek domeny | tylko do skrzynki, której konto się zalogowało |
| Logowanie do draften kontem Google | nie, to osobna sprawa | ten sam klient OAuth służy też do logowania |
Dla organizacji z wieloma skrzynkami prostsza jest droga za całą organizację. Kontem skrzynki przydaje się, gdy nie chcesz dawać jednemu kluczowi dostępu do wszystkich skrzynek domeny albo gdy i tak wprowadzasz logowanie kontem Google.
Obie drogi możesz mieć jednocześnie; każda skrzynka używa jednej z nich. draften prosi tylko o zakres gmail.modify – odczyt i tworzenie szkiców, niczego nie wysyła.
Droga A: za całą organizację
W Google Cloud
Pracujesz w https://console.cloud.google.com, w organizacji swojej domeny Workspace.
- Wybierz projekt albo utwórz nowy (na przykład
draften). - APIs & Services → Library → Gmail API → Enable.
- IAM & Admin → Service accounts → Create service account. Nazwa na przykład
draften-poczta. Nie potrzebuje żadnych ról w projekcie – dostęp do poczty da mu dopiero delegowanie w Google Admin. Kliknij Done. - Otwórz konto usługi i zanotuj jego Unique ID – numeryczny Client ID.
- Zakładka Keys → Add key → Create new key → JSON → Create. Pobierze się plik z kluczem.
Gdy Google odmówi utworzenia klucza, twoja organizacja ma włączoną zasadę iam.disableServiceAccountKeyCreation (nowe organizacje mają ją domyślnie). Dla tego projektu wyłączy ją administrator organizacji w IAM & Admin → Organization policies.
W Google Admin
Potrzebujesz superadministratora. W https://admin.google.com otwórz Security → Access and data control → API controls → Manage Domain Wide Delegation → Add new. Client ID: numeryczne ID z kroku 4. OAuth scopes: https://www.googleapis.com/auth/gmail.modify. Kliknij Authorize. Delegowanie zaczyna zwykle działać w ciągu kilku minut, wyjątkowo dopiero po kilku godzinach.
W draften
- Otwórz Organizacja → Integracje, kartę Dostęp do poczty dla całej organizacji. Rejestracjami zarządza właściciel lub menedżer organizacji.
- System: Google Workspace. Wypełnij Nazwa, w polu Klucz konta usługi (JSON) wybierz pobrany plik i kliknij Dodaj rejestrację. Klucz jest przechowywany w postaci zaszyfrowanej; na karcie widać potem tylko e-mail konta usługi i jego Client ID.
- Na stronie każdej skrzynki, na karcie Dostęp do poczty, wybierz w polu Użyj tę rejestrację, kliknij Zastosuj, a potem Przetestuj połączenie. Postępowanie ze zrzutami ekranu pokazuje instrukcja Dodanie i podłączenie skrzynki.
Pobrany plik z kluczem potem usuń. Kto go ma, dostanie się do każdej skrzynki domeny. Nowy klucz tego samego konta usługi prześlesz przy rejestracji opcją nowy klucz (JSON); klucz innego konta usługi dodaj jako nową rejestrację. Stary klucz w Google Cloud usuń.
Przy włączonej automatycznej skrzynce (Logowanie członków) nowa skrzynka zostaje powiązana z rejestracją sama, jeśli dla Google Workspace jest dokładnie jedna aktywna.
Droga B: kontem skrzynki (Podłącz Gmail)
Tutaj właściciel skrzynki loguje się swoim kontem Google i zezwala na dostęp tylko do swojej poczty. Ten sam klient OAuth służy też do logowania do draften kontem Google.
W Google Cloud
- W draften najpierw otwórz Organizacja → Logowanie członków, kartę Logowanie kontem i podłączanie skrzynek. Pokazuje dwa redirect URI dokładnie dla twojego adresu draften – kończą się na
/auth/google/callbacki/mailboxes/connect/google/callback. Skopiuj je stamtąd; muszą się zgadzać znak po znaku. - W projekcie z włączonym Gmail API (krok 2 drogi A) otwórz APIs & Services → OAuth consent screen. User type: Internal – zalogować się może wtedy tylko konto twojej domeny, a aplikacji nie musi weryfikować Google. Wpisz nazwę aplikacji (na przykład
draften) i kontaktowy e-mail. - W części z zakresami (Scopes / Data access) dodaj
openid,email,profileihttps://www.googleapis.com/auth/gmail.modify. - APIs & Services → Credentials → Create credentials → OAuth client ID. Application type: Web application. W Authorized redirect URIs wklej oba adresy z karty i kliknij Create.
- Skopiuj Client ID i Client secret.
W draften
- Właściciel organizacji na karcie Logowanie kontem i podłączanie skrzynek wypełnia w sekcji Klient Google OAuth pola Client ID i Client secret i klika Zapisz.
- Właściciel skrzynki otwiera stronę skrzynki i na karcie Dostęp do poczty klika Podłącz Gmail. Loguje się kontem tej skrzynki – inne konto draften odrzuci – i zezwala na dostęp. Przycisk widzi tylko właściciel skrzynki i tylko wtedy, gdy organizacja ma klienta OAuth.
- Potem Przetestuj połączenie.
Logowanie kontem Google włączysz na tej samej stronie: w polu Domeny e-mail organizacji wpisz swoją domenę Workspace – główną, nie domenę aliasu (tej Google przy logowaniu nie wysyła). Gdy organizacja ma klienta OAuth i domenę, członkowie logują się kontem Google, a ich hasła przestają działać – zobacz Logowanie członków.
Gdy skrzynka się odłączy
- Konto zostało usunięte albo zablokowane lub dostęp został cofnięty – Google przestaje wydawać tokeny i draften odłącza skrzynkę. Podłącz ją ponownie (Podłącz Gmail ponownie) albo drogą A.
- „Dostawca nie wydał tokenu odświeżania” – właściciel skrzynki usuwa aplikację w ustawieniach swojego konta Google (Bezpieczeństwo → Aplikacje innych firm) i podłącza skrzynkę ponownie.
- „Zalogowało się inne konto niż adres skrzynki” – przy podłączaniu wybierz konto właśnie tej skrzynki.
Błędy testu połączenia
Test sprawdza trzy kroki: Dostęp, Token i uprawnienie i Odczyt skrzynki odbiorczej.
| W komunikacie | Co to znaczy | Co zrobić |
|---|---|---|
delegowanie dla zakresu nie jest dozwolone (unauthorized_client) | w Google Admin brakuje domain-wide delegation albo ma ona inny Client ID lub zakres | sprawdź delegowanie w Google Admin: numeryczne ID i dokładny zakres gmail.modify |
invalid_grant przy koncie usługi | takiej skrzynki nie ma w domenie Workspace | sprawdź adres skrzynki |
| „Gmail API has not been used…” | w projekcie nie jest włączone Gmail API | włącz Gmail API (krok 2) |
token bez gmail.modify | delegowanie albo ekran zgody nie ma zakresu gmail.modify | uzupełnij zakres |
invalid_grant, deleted_client przy podłączonym koncie | połączenie zostało cofnięte albo klient OAuth usunięty | Podłącz Gmail ponownie |
Pozostałe błędy opisuje strona Rozwiązywanie problemów.