Připojte Google Calendar
Tenhle návod ukáže, jak připojit Google Calendar k pracovnímu prostoru. Váže se na pracovní prostor: události toho prostoru se do Control Center synchronizují jen ke čtení. Jak to funguje celé, popisuje Kalendář a plánování.
Připoj účet
Sekce “Připoj účet”- V postranním panelu otevři Kalendář.
- V postranním panelu kalendáře klikni na Přidat účet kalendáře. (Stejná sekce je v Nastavení → Pracovní prostor → Profil a identita, pod Google Calendar.)
- Zvol způsob autorizace:
- Použít Google aplikaci Control Center — nic nenastavuješ. To je výchozí volba, když sestavení klienta obsahuje.
- Použít vlastní klienta Google Cloud — vlož client id a secret z vlastního projektu (viz Vlastní klient Google).
- Klikni na Připojit Google Calendar. Dialog ukáže krátký kód a odkaz na stránku Google pro kód zařízení.
- Tu stránku otevři na libovolném zařízení, zadej kód a schval požadovaný přístup. Dialog se zavře sám a události se začnou synchronizovat.
Výměnu provede server a výsledný refresh token si nechá. Proto kód schvaluješ na „libovolném zařízení“, ne přímo v téhle aplikaci.
Účet je připojený jen k aktivnímu pracovnímu prostoru. Přepni pracovní prostor a uvidíš kalendáře toho, do kterého jsi přešel.
Připojení žádá calendar.readonly a tvůj e-mail. Stejné scopes platí pro
vestavěnou aplikaci i pro klienta, kterého vložíš. Control Center události čte.
Nevytváří je, neupravuje, nemaže ani na pozvánky na Google neodpovídá.
Jak synchronizace funguje
Sekce “Jak synchronizace funguje”Server řídí harmonogram: každé dvě minuty projde připojené účty všech pracovních prostorů a události zapíše do databáze daného prostoru. Klienti čtou to, co zapsal server. S Googlem komunikuje on.
Průchod je přírůstkový. První průchod každého kalendáře stáhne posuvné okno (60 dní zpět, 90 dní dopředu) a uloží sync token od Google. Další průchody ten token předloží a dostanou jen to, co se změnilo, proto dvouminutový interval vyjde levně. Okno se znovu ukotví plnou synchronizací každých 24 hodin a kdykoli Google token zneplatní.
Refresh tokeny leží na serveru v secrets.json v datovém adresáři serveru,
zapsané s právy jen pro vlastníka (0600). Nejsou v klíčence operačního
systému a nikdy na zařízení klienta.
Připoj víc účtů
Sekce “Připoj víc účtů”Pracovní prostor může připojit několik účtů Google (třeba pracovní a osobní). Krok připojení zopakuj u každého; události se sloučí do stejných zobrazení měsíce, týdne a agendy. Každý účet se synchronizuje a obnovuje samostatně a každý jde odpojit zvlášť.
Znovu připoj prošlý účet
Sekce “Znovu připoj prošlý účet”Když Google token účtu trvale zneplatní (zrušená nebo dlouho prošlá relace), synchronizace se zastaví. Control Center na kalendáři ukáže banner Znovu připojit a pošle oznámení na plochu. Klikni na Znovu připojit a schval nový kód. Banner zmizí při další úspěšné synchronizaci.
Odpoj účet
Sekce “Odpoj účet”V postranním panelu kalendáře (nebo v Nastavení → Pracovní prostor → Profil a identita) klikni u účtu na Odpojit. Smaže synchronizované události toho účtu a na serveru vymaže uložené tokeny.
Připoj z bezhlavého serveru
Sekce “Připoj z bezhlavého serveru”Server bez připojeného grafického rozhraní připojí stejný účet z vlastního terminálu:
GOOGLE_OAUTH_CLIENT_ID=<id> GOOGLE_OAUTH_CLIENT_SECRET=<secret> \ cc_server calendar connect --data-dir <dir> --workspace <workspace-id>Vypíše kód a URL, počká na schválení, uloží tokeny a synchronizuje při dalším průchodu.
Sestavení ze zdrojů žádného klienta Google neobsahuje, takže id a secret
jsou povinné. Nastav GOOGLE_OAUTH_CLIENT_ID a GOOGLE_OAUTH_CLIENT_SECRET.
Příznak --google-client-id neexistuje (neznámé příznaky se ignorují). Bez
dvojice v prostředí příkaz skončí chybou chybějícího klienta.
Vlastní klient Google (forky a self-hosting)
Sekce “Vlastní klient Google (forky a self-hosting)”Vydaná sestavení klienta Google obsahují, takže většina lidí sem nesáhne. Vlastního si přines, když sestavuješ ze zdrojů, provozuješ vlastní server, nebo chceš, aby obrazovka souhlasu nesla jméno tvého projektu.
- V Google Cloud Console zapni Google Calendar API a nastav obrazovku souhlasu OAuth. Přidej scopes
calendar.readonly,openidaemail. Dokud aplikace není ověřená, přidej se jako testovací uživatel. Přidánícalendar.eventsna obrazovku souhlasu RSVP nezapne. Control Center ten scope nikdy nežádá. - Vytvoř OAuth client ID typu aplikace TVs and limited input devices a zkopíruj client id i client secret.
- Zadej je buď u jednoho připojení (v dialogu zvol Použít vlastní klienta Google Cloud), nebo pro celý server přes
GOOGLE_OAUTH_CLIENT_IDaGOOGLE_OAUTH_CLIENT_SECRET.
Dvojice pro celý server nahradí vestavěnou všude, i za volbou „Použít Google aplikaci Control Center“. Na vlastním serveru je ta volba tvoje aplikace.
Secret klienta server neopustí: žádná odpověď RPC ho nenese a účet připojený přes vlastního klienta serveru uloží značku, ne kopii dvojice. Rotace je restart s novou hodnotou.
Řešení problémů
Sekce “Řešení problémů”| Projev | Pravděpodobná příčina |
|---|---|
| Dialog nenabízí vestavěnou volbu | Tohle sestavení žádného klienta Google neobsahuje (sestavení ze zdrojů), nebo server nastartoval jen s polovinou dvojice. ID i secret jsou povinné |
invalid_scope při startu postupu |
Calendar pro klienta s device code v tomhle projektu Cloud povolený není. Použij místo toho projekt s loopback nebo webovým klientem |
invalid_client od Google |
Klient není typu TVs and limited input devices, nebo id a secret patří různým klientům |
| Schválení projde, ale synchronizace je prázdná | Účet není testovací uživatel na obrazovce souhlasu, nebo nebyl udělen calendar.readonly |
| Kód vyprší dřív, než ho schválíš | Kódy zařízení platí krátce. Připojení spusť znovu, ať máš čerstvý |
| „Odpověď se nepodařilo aktualizovat“ u RSVP | Očekávané: postup připojení scope calendar.events nikdy nežádá |
| Synchronizace se zastaví a log hlásí varování o obnově | Účet byl připojený klientem, který už není nastavený. Účet znovu připoj, nebo vrať to client id a secret |
Související návody
Sekce “Související návody”- Nahrajte a shrňte schůzku: z události uděláš nahrávku
- Spusťte headless server: kde leží tokeny a plán synchronizace
- Nastavte integraci GitHub