日曆與排程
Control Center 會連接 Google Calendar,讓你的日程與機群並列呈現。它會同步你的活動,在月、週、日及議程檢視中顯示它們,在會議開始前提醒你,並把任何活動變成有錄音和摘要的會議。
對 Google 作出的改動
標題為「對 Google 作出的改動」的章節幾乎沒有。此整合只會拉取活動並把它們顯示出來。它不會建立、編輯或刪除活動,也不會回覆邀請。無論是內建還是自備的連接方式,每一次裝置代碼連接都會要求 calendar.readonly 加上 openid email。
活動會同步到工作區自己的資料庫,該資料庫位於伺服器上(<dataDir>/<workspaceId>/workspace.db),並由每個用戶端透過 RPC 顯示。沒有任何用戶端持有 Google 憑證。
每個工作區各自的帳戶
標題為「每個工作區各自的帳戶」的章節日曆帳戶與工作區綁定,就像 Control Center 中其他一切一樣。每個工作區連接自己的 Google 帳戶(可以是一個或多個),而一個工作區的活動和權杖永遠無法從另一個工作區看到。切換工作區,你看到的日曆也隨之切換。
一個工作區可以連接多個 Google 帳戶,例如一個工作帳戶和一個個人帳戶,它們的活動會合併到相同的檢視中。
登入為何使用裝置代碼
標題為「登入為何使用裝置代碼」的章節無介面的 cc_server 沒有瀏覽器可以接收 OAuth 重新導向。因此它不使用重新導向,而是透過裝置代碼授權(RFC 8628)完成授權。伺服器會顯示一個簡短的用戶代碼和一個 Google URL,你在任何有瀏覽器的裝置上核准,伺服器會輪詢直到你核准為止。無介面安裝之所以能連接帳戶,正因為它沒有需要託管的重新導向端點。
在你自備憑證之前需要知道的後果是:用戶端類型必須是 Google 的「TV and Limited Input devices」。Google 只會向該用戶端類型授予允許清單中的一組範圍;若某個專案未獲准將它用於 Calendar,就會以 invalid_scope 失敗——這種情況下你需要改用回送用戶端或網頁用戶端。
權杖永遠不會離開伺服器。它們會寫入伺服器資料目錄中的 secrets.json,鍵為 google_google:<workspaceId>:<email>,與資料庫放在一起,並處於相同的主機檔案系統信任邊界之內。伺服器會自動重新整理存取權;當 Google 永久使某個帳戶失效時(工作階段被撤銷或長期過期),伺服器會發佈 CalendarAuthExpired,並顯示重新連接橫幅,而不是靜默失敗。
從原始碼建置的版本完全不附帶 Google 憑證——用戶端 ID 和密鑰由你自己提供。官方發行版會內建一個非機密的裝置代碼用戶端,因此連接流程開箱即用;伺服器只會儲存一個引用它的標記,絕不儲存副本。環境中的 GOOGLE_OAUTH_CLIENT_ID(及其密鑰)一律優先於內建的那一對。這裡刻意不提供 --google-client-id 旗標:未知旗標會被忽略,而命令列上的密鑰可以透過 ps 讀到。
如要執行你自己的 Google 專案,請參閱連接 Google Calendar。
伺服器會拉取每個已連接帳戶活動的滾動視窗——帳戶上的所有日曆,而不只是主要日曆——每兩分鐘一次,另外還會按需拉取(啟動時、連接時、手動重新整理時)。這麼短的間隔之所以可負擔,是因為掃描是增量式的:每個日曆都帶有自己的同步權杖,因此未變更的日曆只需一次幾乎為空的回應,而不必重新拉取五個月的視窗。
重複活動在伺服器端展開,因此沒有任何用戶端需要解析重複規則。瀏覽到目前視窗以外的月份時,會延遲載入該範圍。被刪除或移出範圍的活動會在下一次同步時對帳清除。
| 檢視 | 顯示內容 |
|---|---|
| 月 | 完整的月網格(由 kalender 套件提供支援) |
| 週 | 一週中的定時活動,按時間網格顯示 |
| 日 | 單日的定時活動,按時間網格顯示 |
| 議程 | 可捲動的即將到來活動清單 |
在 /calendar 開啟日曆;選取某個活動會在 /calendar/:eventId 開啟它的詳細資料。你選擇的檢視會儲存在該用戶端自己的偏好設定中,因此不會跟隨你到其他裝置。
會議提醒
標題為「會議提醒」的章節每分鐘執行一次的排程器會掃描在可設定的提前時間窗內開始的活動,並觸發 「會議即將開始」 通知(一個 MeetingStartingSoon 領域事件)。當活動有加入 URL 時,通知會一併帶上它,點擊即可開啟活動詳細資料。提醒會根據活動的 alertedAt 去重,因此同一場會議絕不會提醒兩次,即使跨重新啟動亦然;而在應用程式關閉期間已經過了開始時間的活動也絕不會補播。
有兩項限制很容易被忽略。排程器在桌面端的用戶端本機執行,而且只針對你目前開啟的工作區——你不在其中的工作區不會發出任何提醒。另外,網頁版本完全沒有作業系統通知管道,因此也不會發出任何提醒。
錄製並連結
標題為「錄製並連結」的章節從日曆活動出發,你可以開始一次會議錄製,並以該活動的標題預填。Control Center 會在錄製與該活動之間儲存一對一的關聯,因此會議筆記與日曆項目保持關聯,而兩個功能都不依賴對方。
開始錄製並連結僅限桌面端。在網頁用戶端上,該操作會提示錄製無法使用——儘管會議畫面自身的錄製流程在瀏覽器中確實可以正常運作。
另請參閱
標題為「另請參閱」的章節- 會議與轉錄:開始錄製之後會發生什麼
- 工作區與隔離:日曆帳戶為何按工作區劃分
- 領域事件:
MeetingStartingSoon與CalendarAuthExpired - 連接 Google Calendar
- 錄製並摘要會議