Tovább a tartalomhoz

Google Calendar csatlakoztatása

Ez az útmutató bemutatja, hogyan csatlakoztathat Google Calendar naptárat egy munkaterülethez. Munkaterületenként működik: írásvédetten szinkronizálja az adott munkaterület eseményeit a Control Centerbe. A teljes képről a Naptár és ütemezés oldalon olvashat.

  1. Nyissa meg a Naptár elemet az oldalsávon.
  2. Kattintson a Naptárfiók hozzáadása elemre a naptár oldalsávján. (Ugyanez a szakasz a Beállítások → Munkaterület → Profil és identitás alatt, a Google Calendar alpontban található.)
  3. Válassza ki az engedélyezés módját:
    • A Control Center Google-alkalmazásának használata — nincs mit beállítani. Ez az alapértelmezett, ha a buildhez tartozik ilyen.
    • Saját Google Cloud kliens használata — illessze be a saját projektje kliens-ID-ját és titkát (lásd: Saját Google-kliens használata).
  4. Kattintson a Google Calendar csatlakoztatása elemre. A párbeszédpanel egy rövid kódot és egy hivatkozást mutat a Google eszközoldalára.
  5. Nyissa meg ezt az oldalt bármely eszközön, adja meg a kódot, és hagyja jóvá a kért hozzáférést. A párbeszédpanel magától bezárul, és az eseményei elkezdenek szinkronizálódni.

Ezt a folyamatot nem az eszköze, hanem a szerver bonyolítja le, és ő őrzi a keletkező refresh tokent — ezért hagyja jóvá a kódot „bármely eszközön”, nem pedig kifejezetten ebben az alkalmazásban.

A fiók csak az aktív munkaterülethez kapcsolódik. Ha munkaterületet vált, az adott munkaterület naptárait fogja látni helyette.

A csatlakozási folyamat a calendar.readonly hatókört kéri, valamint az e-mail-címét — ugyanezeket a hatóköröket a beépített alkalmazás és a beillesztett kliens esetében is. A Control Center olvassa az eseményeket; nem hoz létre, szerkeszt, töröl és nem válaszol meghívókra a Google-on.

Az ütemezést a szerver birtokolja: kétpercenként bejárja az egyes munkaterületek csatlakoztatott fiókjait, és beírja az eseményeket a munkaterület adatbázisába. A kliensek soha nem beszélnek a Google-lel — azt olvassák, amit a szerver írt.

A bejárás inkrementális. Naptáranként az első kör egy gördülő ablakot húz be (60 nappal visszamenőleg, 90 nappal előre), és elmenti a Google szinkrontokenjét; a későbbi körök bemutatják ezt a tokent, és csak a megváltozott adatokat kapják meg — ez teszi megfizethetővé a kétperces ütemet. Az ablak 24 óránként, valamint minden alkalommal, amikor a Google érvényteleníti a tokent, egy teljes szinkronizálással horgonyzódik újra.

A refresh tokenek a szerveroldalon, a szerver adatkönyvtárában lévő secrets.json fájlban élnek, amely csak tulajdonosi jogosultsággal (0600) íródik — nem az operációs rendszer kulcskarikájában, és soha nem egy kliensen.

Egy munkaterület több Google-fiókot is csatlakoztathat (például egy munkahelyit és egy személyeset). Ismételje meg mindegyiknél a csatlakoztatás lépéseit; az eseményeik ugyanabba a havi / heti / napirend nézetbe olvadnak össze. Minden fiók önállóan szinkronizál és frissül, és mindegyik külön leválasztható.

Ha a Google véglegesen érvényteleníti egy fiók tokenjét (visszavont vagy rég lejárt munkamenet), a szinkronizálás leáll, és a Control Center egy Újracsatlakozás sávot jelenít meg a naptáron, valamint egy asztali értesítést. Kattintson az Újracsatlakozás elemre, és hagyjon jóvá egy új kódot; a sáv a következő sikeres szinkronizáláskor eltűnik.

A naptár oldalsávján (vagy a Beállítások → Munkaterület → Profil és identitás alatt) kattintson a fiók Leválasztás elemére. Ez törli a szinkronizált eseményeit, és törli a szerveren tárolt tokenjeit.

Egy grafikus felület nélküli szerver ugyanezt a fiókot a saját termináljából csatlakoztatja:

Terminál
GOOGLE_OAUTH_CLIENT_ID=<id> GOOGLE_OAUTH_CLIENT_SECRET=<secret> \
cc_server calendar connect --data-dir <dir> --workspace <workspace-id>

Kiír egy kódot és egy URL-t, megvárja a jóváhagyást, majd eltárolja a tokeneket, és a következő bejáráskor szinkronizál.

A forrásból készült build nem tartalmaz Google-klienst, ezért az ID és a titok kötelező — állítsa be a GOOGLE_OAUTH_CLIENT_ID és a GOOGLE_OAUTH_CLIENT_SECRET változót. Nincs --google-client-id kapcsoló (az ismeretlen kapcsolókat a rendszer figyelmen kívül hagyja). A környezeti változópár nélkül a parancs hiányzó kliensre utaló hibával lép ki.

Saját Google-kliens használata (forkok és saját hosztolás)

Szekció neve “Saját Google-kliens használata (forkok és saját hosztolás)”

A kiadott buildek tartalmaznak Google-klienst, így a legtöbb felhasználó soha nem nyúl ehhez. Akkor használjon sajátot, ha forrásból buildel, saját szervert futtat, vagy szeretné, hogy a hozzájárulási képernyő az Ön projektjét nevezze meg.

  1. A Google Cloud Console felületén engedélyezze a Google Calendar API-t, és konfigurálja az OAuth hozzájárulási képernyőt, hozzáadva a calendar.readonly, openid és email hatókört. Amíg az alkalmazás nincs ellenőrizve, vegye fel magát tesztfelhasználóként. A calendar.events hozzáadása a hozzájárulási képernyőn nem teszi lehetővé az RSVP-t — a Control Center soha nem kéri ezt a hatókört.
  2. Hozzon létre egy OAuth kliens-ID-t TV-k és korlátozott bemenetű eszközök alkalmazástípussal, és másolja ki a kliens-ID-t és a kliens titkot is.
  3. Adja meg őket vagy kapcsolatonként (válassza a Saját Google Cloud kliens használata lehetőséget a párbeszédpanelen), vagy szerver szinten a GOOGLE_OAUTH_CLIENT_ID és a GOOGLE_OAUTH_CLIENT_SECRET változóval.

A szerver szinten megadott pár mindenhol felváltja a beépítettet, még a „Control Center Google-alkalmazásának használata” beállítás mögött is — így a saját szerverén ez a beállítás az Ön alkalmazását jelenti.

A kliens titok soha nem hagyja el a szervert: egyetlen RPC-válasz sem tartalmazza, és a szerver saját kliense útján csatlakoztatott fiók jelölőt tárol a pár másolata helyett, így a cseréje csak annyi, hogy új értékkel újraindítja a szervert.

Tünet Valószínű ok
A párbeszédpanel nem kínál beépített lehetőséget Ez a build nem tartalmaz Google-klienst (forrásból készült build), vagy a szervert a párnak csak az egyik felével indították. Mind az ID, mind a titok kötelező
invalid_scope a folyamat indításakor A Naptár nincs engedélyezve az adott Cloud-projektben egy eszközkódos kliens számára. Használjon helyette loopback- vagy webkliens-projektet
invalid_client a Google-től A kliens nem TV-k és korlátozott bemenetű eszközök típusú, vagy az ID és a titok különböző kliensekből származik
A jóváhagyás sikerül, de a szinkronizálás üres A fiókja nincs tesztfelhasználóként felvéve a hozzájárulási képernyőn, vagy a calendar.readonly hatókört nem adták meg
A kód a jóváhagyás előtt lejár Az eszközkódok rövid élettartamúak. Indítsa újra a csatlakoztatást egy új kódért
„Nem sikerült frissíteni a válaszát” egy RSVP-nél Várható: a csatlakozási folyamat soha nem kéri a calendar.events hatókört
A szinkronizálás leáll, és a szervernaplóban frissítési figyelmeztetés jelenik meg A fiókot olyan klienssel csatlakoztatták, amely már nincs konfigurálva. Csatlakoztassa újra a fiókot, vagy állítsa vissza azt a kliens-ID-t és titkot