Lịch và lên lịch
Control Center kết nối với Google Calendar để ngày làm việc của bạn nằm cạnh đội máy của bạn. Nó đồng bộ sự kiện, hiển thị chúng ở chế độ xem tháng, tuần, ngày và lịch trình, cảnh báo bạn trước khi một cuộc họp bắt đầu và biến bất kỳ sự kiện nào thành một cuộc họp đã được ghi lại và tóm tắt.
Nó thay đổi những gì trên Google
Phần tiêu đề “Nó thay đổi những gì trên Google”Gần như không gì cả. Tích hợp này kéo sự kiện về và hiển thị chúng. Nó không
tạo, sửa, xóa hay phản hồi lời mời. Mọi kết nối bằng mã thiết bị, dù là loại
tích hợp sẵn hay do bạn tự cung cấp, đều yêu cầu calendar.readonly cùng
openid email.
Sự kiện được đồng bộ vào cơ sở dữ liệu riêng của không gian làm việc trên máy
chủ (<dataDir>/<workspaceId>/workspace.db) và được mọi máy khách hiển thị
qua RPC. Không máy khách nào giữ thông tin xác thực Google.
Tài khoản theo từng không gian làm việc
Phần tiêu đề “Tài khoản theo từng không gian làm việc”Tài khoản lịch thuộc phạm vi không gian làm việc, giống mọi thứ khác trong Control Center. Mỗi không gian làm việc kết nối tài khoản Google riêng của mình (hoặc nhiều tài khoản), và sự kiện cùng token của một không gian làm việc không bao giờ hiển thị được từ không gian khác. Chuyển không gian làm việc là chuyển những lịch bạn nhìn thấy.
Một không gian làm việc có thể kết nối nhiều tài khoản Google, chẳng hạn một tài khoản công việc và một tài khoản cá nhân, và sự kiện của chúng được gộp vào cùng các chế độ xem.
Vì sao đăng nhập dùng mã thiết bị
Phần tiêu đề “Vì sao đăng nhập dùng mã thiết bị”cc_server không giao diện không có trình duyệt để bắt chuyển hướng OAuth. Nên
nó không dùng cách đó: nó ủy quyền bằng cấp quyền mã thiết bị (RFC 8628).
Máy chủ hiển thị một mã người dùng ngắn và một URL Google, bạn phê duyệt trên
bất kỳ thiết bị nào có trình duyệt và máy chủ sẽ thăm dò cho đến khi bạn làm
vậy. Một bản cài không giao diện có thể kết nối tài khoản chính là vì không có
endpoint chuyển hướng nào để lưu trữ.
Hệ quả cần biết trước khi bạn tự cung cấp thông tin xác thực: loại máy khách
phải là “TV and Limited Input devices” của Google. Google chỉ cấp một tập phạm
vi nằm trong danh sách cho phép cho loại máy khách đó, và một dự án không được
phép dùng Calendar cho loại máy khách này sẽ thất bại với invalid_scope — khi
đó bạn cần dùng máy khách loopback hoặc web.
Token không bao giờ rời khỏi máy chủ. Chúng được ghi vào secrets.json của máy
chủ trong thư mục dữ liệu của nó, với khóa
google_google:<workspaceId>:<email>, nằm cạnh các cơ sở dữ liệu và trong cùng
ranh giới tin cậy của hệ thống tệp máy chủ. Máy chủ tự động làm mới quyền truy
cập và, khi Google vô hiệu hóa vĩnh viễn một tài khoản (phiên bị thu hồi hoặc
hết hạn từ lâu), nó phát CalendarAuthExpired và hiện banner kết nối lại
thay vì thất bại âm thầm.
Bản dựng từ mã nguồn không kèm thông tin xác thực Google nào — bạn tự cung
cấp client id và secret của mình. Các bản phát hành chính thức nhúng sẵn một máy
khách mã thiết bị không bí mật để luồng kết nối chạy được ngay; máy chủ chỉ lưu
một dấu tham chiếu tới nó, không bao giờ lưu bản sao.
GOOGLE_OAUTH_CLIENT_ID (và secret của nó) trong môi trường luôn được ưu tiên
hơn cặp nhúng sẵn. Cố ý không có cờ --google-client-id: các cờ không rõ bị bỏ
qua, và một secret trên dòng lệnh có thể bị đọc qua ps.
Để chạy dự án Google của riêng bạn, xem Kết nối Google Calendar.
Đồng bộ
Phần tiêu đề “Đồng bộ”Máy chủ kéo một cửa sổ trượt gồm sự kiện của mỗi tài khoản đã kết nối — mọi lịch trên tài khoản, không chỉ lịch chính — hai phút một lần, cùng với khi có yêu cầu (khởi động, kết nối, làm mới thủ công). Nhịp ngắn như vậy vẫn chấp nhận được vì lần quét là tăng dần: mỗi lịch mang token đồng bộ riêng, nên một lịch không thay đổi chỉ tốn một phản hồi gần như rỗng thay vì tải lại cả cửa sổ năm tháng.
Sự kiện lặp lại được mở rộng ở phía máy chủ, nên không máy khách nào phải phân tích quy tắc lặp. Khi bạn chuyển tới một tháng nằm ngoài cửa sổ hiện tại, khoảng đó được tải khi cần. Các sự kiện đã xóa hoặc đã chuyển ra ngoài phạm vi được đối chiếu và loại bỏ ở lần đồng bộ kế tiếp.
Các chế độ xem
Phần tiêu đề “Các chế độ xem”| Chế độ xem | Nội dung hiển thị |
|---|---|
| Tháng | Lưới đầy đủ của một tháng (dùng gói kalender) |
| Tuần | Các sự kiện có giờ trong một tuần, trên lưới thời gian |
| Ngày | Các sự kiện có giờ trong một ngày, trên lưới thời gian |
| Lịch trình | Danh sách cuộn được gồm các sự kiện sắp tới |
Mở lịch tại /calendar; chọn một sự kiện sẽ mở trang chi tiết của nó tại
/calendar/:eventId. Chế độ xem bạn chọn được lưu trong tùy chọn riêng của máy
khách đó, nên nó không đi theo bạn sang thiết bị khác.
Cảnh báo cuộc họp
Phần tiêu đề “Cảnh báo cuộc họp”Một bộ lập lịch chạy mỗi phút quét các sự kiện bắt đầu trong khoảng báo trước
có thể cấu hình và phát thông báo “cuộc họp sắp bắt đầu” (một
sự kiện miền MeetingStartingSoon).
Thông báo mang theo URL tham gia khi có, và nhấp vào nó sẽ mở trang chi tiết sự
kiện. Cảnh báo được chống trùng lặp dựa trên alertedAt của sự kiện, nên cùng
một cuộc họp không bao giờ cảnh báo hai lần, kể cả qua các lần khởi động lại,
và một sự kiện có giờ bắt đầu trôi qua khi ứng dụng đang đóng cũng không bao giờ
phát lại.
Có hai giới hạn dễ bị bỏ qua. Bộ lập lịch chạy ở phía máy khách trên máy tính để bàn và chỉ cho không gian làm việc bạn đang mở — một không gian bạn không ở trong đó sẽ không phát cảnh báo nào. Và bản web hoàn toàn không có luồng thông báo hệ điều hành, nên cũng không phát cảnh báo nào.
Ghi và liên kết
Phần tiêu đề “Ghi và liên kết”Từ một sự kiện lịch, bạn có thể bắt đầu một bản ghi cuộc họp được khởi tạo bằng tiêu đề của sự kiện. Control Center lưu một liên kết một-một giữa bản ghi và sự kiện, nên ghi chú của cuộc họp và mục lịch vẫn gắn với nhau mà không tính năng nào phụ thuộc vào tính năng kia.
Bắt đầu ghi & liên kết chỉ có trên máy tính để bàn. Trên máy khách web, hành động này báo rằng không thể ghi — dù luồng ghi của chính màn hình cuộc họp vẫn hoạt động trong trình duyệt.
Xem thêm
Phần tiêu đề “Xem thêm”- Cuộc họp và phiên âm: điều gì xảy ra sau khi bạn bắt đầu ghi
- Không gian làm việc và cô lập: vì sao tài khoản lịch thuộc từng không gian làm việc
- Sự kiện miền:
MeetingStartingSoonvàCalendarAuthExpired - Kết nối Google Calendar
- Ghi và tóm tắt một cuộc họp