Koble til en Google Calendar
Denne veiledningen viser hvordan du kobler Google Calendar til et arbeidsområde. Tilkoblingen gjelder per arbeidsområde: den synkroniserer hendelsene i det arbeidsområdet inn i Control Center, kun for lesing. Se Kalender og planlegging for hele bildet.
Koble til en konto
Seksjon med tittelen «Koble til en konto»- Åpne Kalender i sidepanelet.
- Klikk på Legg til kalenderkonto i kalenderens sidepanel. (Den samme delen finnes under Innstillinger → Arbeidsområde → Profil og identitet, under Google Calendar.)
- Velg hvordan du vil autorisere:
- Bruk Control Centers Google-app — ingenting å sette opp. Dette er standardvalget når bygget ditt leveres med en slik app.
- Bruk min egen Google Cloud-klient — lim inn en klient-ID og en klienthemmelighet fra ditt eget prosjekt (se Ta med din egen Google-klient).
- Klikk på Koble til Google Calendar. Dialogen viser en kort kode og en lenke til Googles enhetsside.
- Åpne den siden på en hvilken som helst enhet, skriv inn koden og godkjenn tilgangen det bes om. Dialogen lukker seg selv, og hendelsene dine begynner å synkroniseres.
Det er serveren, ikke enheten din, som utfører denne utvekslingen og beholder refresh-tokenet som kommer ut av den — derfor godkjennes koden på «en hvilken som helst enhet» og ikke spesielt i denne appen.
Kontoen kobles kun til det aktive arbeidsområdet. Bytter du arbeidsområde, ser du kalenderne til det arbeidsområdet i stedet.
Tilkoblingsflyten ber om calendar.readonly i tillegg til e-postadressen din —
de samme scope-ene for den innebygde appen og for en klient du limer inn.
Control Center leser hendelser; det oppretter, redigerer, sletter eller svarer
ikke på invitasjoner hos Google.
Slik fungerer synkroniseringen
Seksjon med tittelen «Slik fungerer synkroniseringen»Serveren eier tidsplanen: annethvert minutt går den gjennom de tilkoblede kontoene i alle arbeidsområder og skriver hendelsene inn i arbeidsområdets database. Klientene snakker aldri direkte med Google — de leser det serveren har skrevet.
Gjennomgangen er inkrementell. Den første runden per kalender henter et rullerende vindu (60 dager tilbake, 90 dager framover) og fanger opp Googles synkroniseringstoken; senere runder legger fram dette tokenet og mottar bare det som er endret, og det er dette som gjør et intervall på to minutter overkommelig. Vinduet forankres på nytt med en full synkronisering hvert 24. time og hver gang Google gjør tokenet ugyldig.
Refresh-tokens ligger på serversiden i secrets.json under serverens
datakatalog, skrevet med tilgang bare for eieren (0600) — ikke i
operativsystemets nøkkelring og aldri på en klientenhet.
Koble til flere kontoer
Seksjon med tittelen «Koble til flere kontoer»Et arbeidsområde kan kobles til flere Google-kontoer (for eksempel jobb og privat). Gjenta tilkoblingstrinnet for hver av dem; hendelsene deres flettes sammen i de samme visningene for måned, uke og agenda. Hver konto synkroniserer og fornyer uavhengig av de andre, og hver av dem kan kobles fra hver for seg.
Koble til en utløpt konto på nytt
Seksjon med tittelen «Koble til en utløpt konto på nytt»Hvis Google gjør tokenet til en konto permanent ugyldig (en tilbakekalt eller lenge utløpt økt), stopper synkroniseringen, og Control Center viser et banner med Koble til på nytt i kalenderen, i tillegg til et skrivebordsvarsel. Klikk på Koble til på nytt og godkjenn en ny kode; banneret forsvinner ved neste vellykkede synkronisering.
Koble fra en konto
Seksjon med tittelen «Koble fra en konto»I kalenderens sidepanel (eller Innstillinger → Arbeidsområde → Profil og identitet) klikker du på Koble fra for kontoen. Dette sletter de synkroniserte hendelsene og fjerner de lagrede tokenene på serveren.
Koble til fra en headless server
Seksjon med tittelen «Koble til fra en headless server»En server uten tilkoblet grafisk grensesnitt kobler til den samme kontoen fra sin egen terminal:
GOOGLE_OAUTH_CLIENT_ID=<id> GOOGLE_OAUTH_CLIENT_SECRET=<secret> \ cc_server calendar connect --data-dir <dir> --workspace <workspace-id>Den skriver ut en kode og en URL, venter på godkjenning, lagrer deretter tokenene og synkroniserer ved neste gjennomgang.
Et bygg fra kildekoden leveres uten Google-klient, så ID-en og
hemmeligheten er påkrevd — sett GOOGLE_OAUTH_CLIENT_ID og
GOOGLE_OAUTH_CLIENT_SECRET. Det finnes ingen --google-client-id-flagg
(ukjente flagg ignoreres). Uten miljøvariabelparet avsluttes kommandoen med en
feil om manglende klient.
Ta med din egen Google-klient (forks og selvhosting)
Seksjon med tittelen «Ta med din egen Google-klient (forks og selvhosting)»Utgitte bygg leveres med en Google-klient, så de fleste kommer aldri borti dette. Ta med din egen hvis du bygger fra kildekoden, kjører din egen server, eller vil at samtykkeskjermen skal navngi ditt eget prosjekt.
- I Google Cloud Console, aktiver Google Calendar API og konfigurer OAuth-samtykkeskjermen, og legg til scope-ene
calendar.readonly,openidogemail. Mens appen er uverifisert, legger du til deg selv som testbruker. Å legge tilcalendar.eventspå samtykkeskjermen aktiverer ikke RSVP — Control Center ber aldri om dette scope-et. - Opprett en OAuth-klient-ID av applikasjonstypen TVs and limited input devices, og kopier både klient-ID-en og klienthemmeligheten.
- Oppgi dem enten per tilkobling (velg Bruk min egen Google Cloud-klient i dialogen) eller for hele serveren med
GOOGLE_OAUTH_CLIENT_IDogGOOGLE_OAUTH_CLIENT_SECRET.
Et serveromfattende par erstatter det innebygde overalt, også bak alternativet «bruk Control Centers Google-app» — så på din egen server er det alternativet din app.
Klienthemmeligheten forlater aldri serveren: ingen RPC-respons inneholder den, og en konto som er koblet til via serverens egen klient, lagrer en markør i stedet for en kopi av paret. Å rotere den er derfor bare et spørsmål om å starte på nytt med en ny verdi.
Feilsøking
Seksjon med tittelen «Feilsøking»| Symptom | Sannsynlig årsak |
|---|---|
| Dialogen tilbyr ikke noe innebygd alternativ | Dette bygget leveres uten Google-klient (et kildekodebygg), eller serveren ble startet med bare den ene halvdelen av paret. Både ID-en og hemmeligheten er påkrevd |
invalid_scope ved start av flyten |
Kalender er ikke tillatt for en enhetskodeklient i det Cloud-prosjektet. Bruk et loopback- eller webklientprosjekt i stedet |
invalid_client fra Google |
Klienten er ikke en TVs and limited input devices-klient, eller ID-en og hemmeligheten tilhører forskjellige klienter |
| Godkjenningen lykkes, men synkroniseringen er tom | Kontoen din er ikke en testbruker på samtykkeskjermen, eller calendar.readonly ble ikke innvilget |
| Koden utløper før du godkjenner den | Enhetskoder lever kort. Start tilkoblingen på nytt for å få en ny kode |
| «Kunne ikke oppdatere svaret ditt» ved RSVP | Forventet: tilkoblingsflyten ber aldri om calendar.events |
| Synkroniseringen stopper med en fornyingsadvarsel i serverloggen | Kontoen ble koblet til med en klient som ikke lenger er konfigurert. Koble kontoen til på nytt, eller gjenopprett denne klient-ID-en og hemmeligheten |
Relaterte veiledninger
Seksjon med tittelen «Relaterte veiledninger»- Ta opp og oppsummer et møte: gjør en hendelse om til et opptak
- Kjør en headless server: hvor tokenene og synkroniseringsplanen ligger
- Sett opp GitHub-integrasjon