Naptár és ütemezés
A Control Center csatlakozik a Google Calendar szolgáltatáshoz, hogy a napod a flottád mellett legyen. Szinkronizálja az eseményeidet, havi, heti, napi és napirend nézetben jeleníti meg őket, figyelmeztet a megbeszélés kezdete előtt, és bármely eseményt rögzített, összefoglalt megbeszéléssé alakít.
Mit változtat a Google oldalán
Szekció neve “Mit változtat a Google oldalán”Szinte semmit. Az integráció behúzza az eseményeket, és megjeleníti őket. Nem
hoz létre, szerkeszt, töröl és nem válaszol meghívókra. Minden eszközkódos
csatlakoztatás — akár beépített, akár saját — a calendar.readonly és az
openid email hatókört kéri.
Az események a munkaterület saját adatbázisába szinkronizálódnak a szerveren
(<dataDir>/<workspaceId>/workspace.db), és minden kliens RPC-n keresztül
jeleníti meg őket. Egyetlen kliens sem tárol Google-hitelesítő adatot.
Munkaterületenkénti fiókok
Szekció neve “Munkaterületenkénti fiókok”A naptárfiókok munkaterület-hatókörűek, mint a Control Centerben minden más. Minden munkaterület a saját Google-fiókját csatlakoztatja (vagy akár többet), és az egyik munkaterület eseményei és tokenjei soha nem láthatók egy másikból. A munkaterületek váltásával az is vált, hogy mely naptárakat látod.
Egy munkaterület több Google-fiókot is csatlakoztathat, például egy munkahelyi és egy személyes fiókot, és ezek eseményei ugyanazokban a nézetekben egyesülnek.
Miért eszközkód a bejelentkezés
Szekció neve “Miért eszközkód a bejelentkezés”A headless cc_server mögött nincs böngésző, amely elkapná az
OAuth-átirányítást. Ezért nem is használ ilyet: eszközkód-engedélyezéssel
(RFC 8628) hitelesít. A szerver megjelenít egy rövid felhasználói kódot és egy
Google URL-t, te bármely böngészővel rendelkező eszközön jóváhagyod, a szerver
pedig addig kérdez, amíg meg nem teszed. Egy headless telepítés éppen azért tud
fiókot csatlakoztatni, mert nincs átirányítási végpont, amit hosztolni kellene.
Egy következményt érdemes tudni, mielőtt saját hitelesítő adatokat hozol: a
kliens típusa a Google „TV and Limited Input devices” kliensének kell lennie. A
Google ehhez a kliens típushoz csak egy engedélyezett hatókörkészletet ad meg,
és az a projekt, amelyben a Naptár nincs számára engedélyezve, invalid_scope
hibával bukik el — helyette loopback- vagy webes klienst kellene használnod.
A tokenek soha nem hagyják el a szervert. A szerver secrets.json fájljába
íródnak az adatkönyvtárában, google_google:<workspaceId>:<email> kulccsal, az
adatbázisok mellett, ugyanazon a hoszt-fájlrendszer bizalmi határon belül. A
szerver automatikusan frissíti a hozzáférést, és amikor a Google véglegesen
érvénytelenít egy fiókot (visszavont vagy rég lejárt munkamenet), közzéteszi a
CalendarAuthExpired eseményt, és egy Újracsatlakozás sávot jelenít meg
ahelyett, hogy csendben elbukna.
A forrásból készült build semmilyen Google-hitelesítő adatot nem tartalmaz —
a saját kliens-azonosítódat és titkodat adod meg. A hivatalos kiadási buildek
beégetnek egy nem bizalmas eszközkódos klienst, hogy a csatlakozási folyamat
azonnal működjön; a szerver csak egy rá hivatkozó jelölőt tárol, másolatot soha.
A környezetben megadott GOOGLE_OAUTH_CLIENT_ID (és a hozzá tartozó titok)
mindig elsőbbséget élvez a beégetett párral szemben. Szándékosan nincs
--google-client-id kapcsoló: az ismeretlen kapcsolókat a rendszer figyelmen
kívül hagyja, a parancssorban szereplő titok pedig a ps segítségével
kiolvasható.
A saját Google-projekt futtatásáról lásd: Google Calendar csatlakoztatása.
Szinkronizálás
Szekció neve “Szinkronizálás”A szerver minden csatlakoztatott fiók eseményeinek egy gördülő ablakát húzza be — a fiók minden naptárát, nem csak az elsődlegest —, kétpercenként, igény szerint pedig ezen felül (indítás, csatlakoztatás, kézi frissítés). A rövid ütem megfizethető, mert a bejárás inkrementális: minden naptár a saját szinkrontokenjét hordozza, így egy változatlan naptár egy majdnem üres válaszba kerül, nem pedig egy öthónapos ablak újralekérésébe.
Az ismétlődő eseményeket a szerver oldalán fejtjük ki, így egyetlen kliens sem dolgoz fel ismétlődési szabályt. Ha az aktuális ablakon kívüli hónapra navigálsz, az a tartomány lustán töltődik be. A törölt vagy az ablakon kívülre mozgatott eseményeket a következő szinkronizálás eltakarítja.
Nézetek
Szekció neve “Nézetek”| Nézet | Mit mutat |
|---|---|
| Hónap | Egy teljes hónap rácsban (a kalender csomag meghajtásával) |
| Hét | Egy hét időzített eseményei időrácsban |
| Nap | Egyetlen nap időzített eseményei időrácsban |
| Napirend | A közelgő események görgethető listája |
A naptárat a /calendar útvonalon nyitod meg; egy esemény kiválasztásával a
részletei a /calendar/:eventId útvonalon nyílnak meg. A választott nézet az
adott kliens saját beállításaiban tárolódik, így nem követ téged egy másik
eszközre.
Megbeszélés-figyelmeztetések
Szekció neve “Megbeszélés-figyelmeztetések”Egy percenként futó ütemező azokat az eseményeket keresi, amelyek egy
konfigurálható előzetes ablakon belül kezdődnek, és egy „Hamarosan kezdődő
megbeszélés” értesítést vált ki (egy MeetingStartingSoon
domaineseményt). Az értesítés
tartalmazza a csatlakozási URL-t, ha van ilyen, és rákattintva megnyílik az
esemény részletei. A figyelmeztetéseket az esemény alertedAt mezője alapján
deduplikáljuk, így ugyanaz a megbeszélés soha nem figyelmeztet kétszer, még
újraindításokon át sem, és egy olyan esemény, amelynek kezdete az alkalmazás
zárva tartása alatt múlt el, soha nem játszódik le újra.
Két korlátba könnyű belebonyolódni. Az ütemező kliensoldalon, az asztali alkalmazásban fut, és csak ahhoz a munkaterülethez, amelyet éppen megnyitva tartasz — egy olyan munkaterület, amelyben nem vagy benne, nem vált ki figyelmeztetést. A webes buildnek pedig egyáltalán nincs operációsrendszer-értesítési csatornája, így az sem vált ki egyet sem.
Rögzítés és összekapcsolás
Szekció neve “Rögzítés és összekapcsolás”Egy naptáreseményből megbeszélés-rögzítést indíthatsz, amelyet az esemény címével előtöltünk. A Control Center egy-az-egyhez kapcsolatot tárol a felvétel és az esemény között, így a megbeszélés jegyzetei és a naptárbejegyzés összekapcsolva maradnak anélkül, hogy bármelyik funkció a másiktól függene.
A Felvétel indítása és összekapcsolás csak asztali gépen érhető el. A webes kliensen a művelet azt jelzi, hogy a felvétel nem érhető el — pedig a megbeszélések képernyő saját rögzítési folyamata működik a böngészőben.
Lásd még
Szekció neve “Lásd még”- Megbeszélések és átírás: mi történik, miután elindítasz egy felvételt
- Munkaterületek és elszigetelés: miért munkaterületenkéntiek a naptárfiókok
- Domainesemények:
MeetingStartingSoonésCalendarAuthExpired - Google Calendar csatlakoztatása
- Megbeszélés rögzítése és összefoglalása