Ημερολόγιο και προγραμματισμός
Το Control Center συνδέεται με το Google Calendar, ώστε η μέρα σας να βρίσκεται δίπλα στον στόλο σας. Συγχρονίζει τα συμβάντα σας, τα εμφανίζει σε προβολές μήνα, εβδομάδας, ημέρας και ατζέντας, σας προειδοποιεί πριν ξεκινήσει μια σύσκεψη και μετατρέπει κάθε συμβάν σε καταγεγραμμένη, συνοψισμένη σύσκεψη.
Τι αλλάζει στο Google
Ενότητα με τίτλο «Τι αλλάζει στο Google»Σχεδόν τίποτα. Η ενσωμάτωση αντλεί συμβάντα και τα αποδίδει. Δεν δημιουργεί,
δεν επεξεργάζεται, δεν διαγράφει ούτε απαντά σε προσκλήσεις. Κάθε σύνδεση με
κωδικό συσκευής, ενσωματωμένη ή δική σας, ζητά τα δικαιώματα calendar.readonly
και openid email.
Τα συμβάντα συγχρονίζονται στη βάση δεδομένων του ίδιου του χώρου εργασίας στον
διακομιστή (<dataDir>/<workspaceId>/workspace.db) και αποδίδονται από κάθε
πελάτη μέσω RPC. Κανένας πελάτης δεν κρατά διαπιστευτήριο Google.
Λογαριασμοί ανά χώρο εργασίας
Ενότητα με τίτλο «Λογαριασμοί ανά χώρο εργασίας»Οι λογαριασμοί ημερολογίου έχουν εμβέλεια χώρου εργασίας, όπως και όλα τα άλλα στο Control Center. Κάθε χώρος εργασίας συνδέει τον δικό του λογαριασμό Google (ή περισσότερους) και τα συμβάντα και τα token ενός χώρου εργασίας δεν είναι ποτέ ορατά από άλλον. Η εναλλαγή χώρου εργασίας αλλάζει και ποια ημερολόγια βλέπετε.
Ένας χώρος εργασίας μπορεί να συνδέσει πολλούς λογαριασμούς Google, όπως έναν επαγγελματικό και έναν προσωπικό, και τα συμβάντα τους συγχωνεύονται στις ίδιες προβολές.
Γιατί η σύνδεση γίνεται με κωδικό συσκευής
Ενότητα με τίτλο «Γιατί η σύνδεση γίνεται με κωδικό συσκευής»Ο headless cc_server δεν έχει πρόγραμμα περιήγησης για να πιάσει μια
ανακατεύθυνση OAuth. Επομένως δεν χρησιμοποιεί καμία: εξουσιοδοτείται με την
εκχώρηση κωδικού συσκευής (RFC 8628). Ο διακομιστής εμφανίζει έναν σύντομο
κωδικό χρήστη και ένα URL της Google, εσείς εγκρίνετε από οποιαδήποτε συσκευή
διαθέτει πρόγραμμα περιήγησης και ο διακομιστής ερωτά επανειλημμένα μέχρι να το
κάνετε. Μια εγκατάσταση χωρίς διεπαφή μπορεί να συνδέσει λογαριασμό ακριβώς
επειδή δεν υπάρχει τελικό σημείο ανακατεύθυνσης για φιλοξενία.
Η συνέπεια που πρέπει να γνωρίζετε πριν φέρετε τα δικά σας διαπιστευτήρια: ο
τύπος πελάτη πρέπει να είναι «TV and Limited Input devices» της Google. Η Google
παραχωρεί μόνο έναν κατάλογο επιτρεπόμενων δικαιωμάτων σε αυτόν τον τύπο πελάτη
και ένα έργο όπου το Calendar δεν επιτρέπεται για αυτόν αποτυγχάνει με
invalid_scope — θα χρειαζόσασταν αντ’ αυτού πελάτη loopback ή web.
Τα token δεν φεύγουν ποτέ από τον διακομιστή. Γράφονται στο secrets.json του
διακομιστή, στον κατάλογο δεδομένων του, με κλειδιά
google_google:<workspaceId>:<email>, δίπλα στις βάσεις δεδομένων και κάτω από
το ίδιο όριο εμπιστοσύνης του συστήματος αρχείων του κεντρικού υπολογιστή. Ο
διακομιστής ανανεώνει την πρόσβαση αυτόματα και, όταν η Google ακυρώσει οριστικά
έναν λογαριασμό (ανακλημένη ή επί μακρόν ληγμένη συνεδρία), δημοσιεύει το
CalendarAuthExpired και εμφανίζει ένα πλαίσιο επανασύνδεσης αντί να
αποτυγχάνει σιωπηλά.
Μια έκδοση από τον πηγαίο κώδικα δεν περιλαμβάνει κανένα διαπιστευτήριο
Google — τα δικά σας client id και secret τα παρέχετε εσείς. Οι επίσημες εκδόσεις
ενσωματώνουν έναν μη εμπιστευτικό πελάτη κωδικού συσκευής, ώστε η ροή σύνδεσης
να λειτουργεί αμέσως· ο διακομιστής αποθηκεύει μόνο έναν δείκτη που τον
αναφέρει, ποτέ αντίγραφό του. Το GOOGLE_OAUTH_CLIENT_ID (και το secret του)
στο περιβάλλον υπερισχύει πάντα του ενσωματωμένου ζεύγους. Σκόπιμα δεν υπάρχει
flag --google-client-id: τα άγνωστα flags αγνοούνται και ένα secret σε γραμμή
εντολών είναι αναγνώσιμο μέσω ps.
Για να τρέξετε το δικό σας έργο Google, δείτε Σύνδεση Google Calendar.
Συγχρονισμός
Ενότητα με τίτλο «Συγχρονισμός»Ο διακομιστής αντλεί ένα κυλιόμενο παράθυρο συμβάντων κάθε συνδεδεμένου λογαριασμού — κάθε ημερολόγιο του λογαριασμού, όχι μόνο το κύριο — κάθε δύο λεπτά, καθώς και κατ’ απαίτηση (εκκίνηση, σύνδεση, χειροκίνητη ανανέωση). Η σύντομη συχνότητα είναι προσιτή επειδή η σάρωση είναι επαυξητική: κάθε ημερολόγιο φέρει το δικό του token συγχρονισμού, οπότε ένα αμετάβλητο ημερολόγιο κοστίζει μία σχεδόν κενή απάντηση αντί να ανακτά ξανά ένα παράθυρο πέντε μηνών.
Τα επαναλαμβανόμενα συμβάντα επεκτείνονται στον διακομιστή, ώστε κανένας πελάτης να μην αναλύει ποτέ κανόνα επανάληψης. Η μετάβαση σε έναν μήνα εκτός του τρέχοντος παραθύρου φορτώνει αργά αυτό το εύρος. Τα συμβάντα που διαγράφηκαν ή μετακινήθηκαν εκτός εύρους συμβιβάζονται και αφαιρούνται κατά τον επόμενο συγχρονισμό.
Προβολές
Ενότητα με τίτλο «Προβολές»| Προβολή | Τι εμφανίζει |
|---|---|
| Μήνας | Ένα πλήρες πλέγμα μήνα (με το πακέτο kalender) |
| Εβδομάδα | Τα συμβάντα μιας εβδομάδας με ώρα σε πλέγμα χρόνου |
| Ημέρα | Τα συμβάντα μιας ημέρας με ώρα σε πλέγμα χρόνου |
| Ατζέντα | Μια λίστα με δυνατότητα κύλισης για επερχόμενα συμβάντα |
Ανοίξτε το ημερολόγιο στο /calendar· η επιλογή ενός συμβάντος ανοίγει τη
λεπτομέρειά του στο /calendar/:eventId. Η προβολή που επιλέγετε αποθηκεύεται
στις προτιμήσεις του ίδιου του πελάτη, οπότε δεν σας ακολουθεί σε άλλη συσκευή.
Ειδοποιήσεις σύσκεψης
Ενότητα με τίτλο «Ειδοποιήσεις σύσκεψης»Ένας χρονοπρογραμματιστής που τρέχει κάθε λεπτό σαρώνει για συμβάντα που
ξεκινούν εντός ενός διαμορφώσιμου παραθύρου προειδοποίησης και εκπέμπει μια
ειδοποίηση «Η σύσκεψη ξεκινά σύντομα» (ένα MeetingStartingSoon
γεγονός τομέα). Η ειδοποίηση φέρει
το URL συμμετοχής όταν υπάρχει και το κλικ σε αυτήν ανοίγει τη λεπτομέρεια του
συμβάντος. Οι ειδοποιήσεις αποδιπλοποιούνται με βάση το alertedAt του
συμβάντος, οπότε η ίδια σύσκεψη δεν ειδοποιεί ποτέ δύο φορές, ακόμη και μετά από
επανεκκινήσεις, και ένα συμβάν του οποίου η έναρξη πέρασε όσο η εφαρμογή ήταν
κλειστή δεν αναπαράγεται ποτέ.
Δύο όρια ξεπερνιούνται εύκολα κατά λάθος. Ο χρονοπρογραμματιστής εκτελείται στην πλευρά του πελάτη, στην επιφάνεια εργασίας και μόνο για τον χώρο εργασίας που έχετε ανοιχτό αυτή τη στιγμή — ένας χώρος εργασίας στον οποίο δεν βρίσκεστε δεν εκπέμπει καμία ειδοποίηση. Και η έκδοση για ιστό δεν έχει καθόλου δίοδο ειδοποιήσεων του λειτουργικού συστήματος, οπότε δεν εκπέμπει καμία.
Καταγραφή και σύνδεση
Ενότητα με τίτλο «Καταγραφή και σύνδεση»Από ένα συμβάν ημερολογίου μπορείτε να ξεκινήσετε μια καταγραφή σύσκεψης με αρχικό τίτλο αυτόν του συμβάντος. Το Control Center αποθηκεύει μια σχέση ένα προς ένα μεταξύ της καταγραφής και του συμβάντος, ώστε οι σημειώσεις της σύσκεψης και η καταχώριση του ημερολογίου να μένουν συνδεδεμένες χωρίς καμία από τις δύο λειτουργίες να εξαρτάται από την άλλη.
Η Έναρξη εγγραφής και σύνδεση είναι διαθέσιμη μόνο στην επιφάνεια εργασίας. Στον πελάτη ιστού η ενέργεια αναφέρει ότι η καταγραφή δεν είναι διαθέσιμη — ακόμη και αν η δική της ροή καταγραφής στην οθόνη συσκέψεων λειτουργεί στο πρόγραμμα περιήγησης.
Δείτε επίσης
Ενότητα με τίτλο «Δείτε επίσης»- Συσκέψεις και μεταγραφή: τι συμβαίνει αφού ξεκινήσετε μια καταγραφή
- Χώροι εργασίας και απομόνωση: γιατί οι λογαριασμοί ημερολογίου είναι ανά χώρο εργασίας
- Γεγονότα τομέα:
MeetingStartingSoonκαιCalendarAuthExpired - Σύνδεση Google Calendar
- Καταγραφή και σύνοψη σύσκεψης