ปฏิทินและการจัดตาราง
Control Center เชื่อมต่อกับ Google Calendar เพื่อให้วันของคุณอยู่เคียงข้างฟลีต มันซิงค์เหตุการณ์ของคุณ แสดงในมุมมองเดือน สัปดาห์ วัน และวาระ เตือนคุณก่อนการ ประชุมจะเริ่ม และเปลี่ยนเหตุการณ์ใดก็ได้ให้เป็นการประชุม ที่บันทึกและสรุปไว้แล้ว
มันเปลี่ยนอะไรบน Google
หัวข้อที่มีชื่อว่า “มันเปลี่ยนอะไรบน Google”แทบไม่เปลี่ยนอะไรเลย การผสานระบบดึงเหตุการณ์เข้ามาและแสดงผลเท่านั้น ไม่มี
การสร้าง แก้ไข ลบ หรือตอบรับคำเชิญ การเชื่อมต่อแบบ device code ทุกครั้ง
ไม่ว่าจะเป็นตัวที่ให้มาในตัวหรือที่คุณนำมาเอง ขอสโคป calendar.readonly
พร้อม openid email
เหตุการณ์ถูกซิงค์เข้าฐานข้อมูลของเวิร์กสเปซเอง บนเซิร์ฟเวอร์
(<dataDir>/<workspaceId>/workspace.db) และแสดงผลโดยไคลเอนต์ทุกตัวผ่าน RPC
ไม่มีไคลเอนต์ใดถือข้อมูลรับรองของ Google
บัญชีแยกตามเวิร์กสเปซ
หัวข้อที่มีชื่อว่า “บัญชีแยกตามเวิร์กสเปซ”บัญชีปฏิทินผูกกับเวิร์กสเปซ เหมือนทุกอย่างอื่นใน Control Center เวิร์กสเปซแต่ละแห่งเชื่อมบัญชี Google ของตัวเอง (หรือหลายบัญชี) และเหตุการณ์กับโทเค็นของเวิร์กสเปซหนึ่งจะไม่ปรากฏให้เห็นจาก อีกเวิร์กสเปซเลย การสลับเวิร์กสเปซจึงสลับว่าคุณเห็นปฏิทินใด
เวิร์กสเปซหนึ่งเชื่อมบัญชี Google ได้หลายบัญชี เช่นบัญชีที่ทำงานและ บัญชีส่วนตัว โดยเหตุการณ์ของทั้งหมดถูกรวมเข้าด้วยกันในมุมมองเดียวกัน
ทำไมการลงชื่อเข้าใช้จึงเป็น device code
หัวข้อที่มีชื่อว่า “ทำไมการลงชื่อเข้าใช้จึงเป็น device code”cc_server แบบไม่มีส่วนติดต่อไม่มีเบราว์เซอร์ไว้รับการเปลี่ยนเส้นทางของ OAuth
จึงไม่ใช้วิธีนั้น แต่ให้สิทธิ์ผ่าน device-code grant (RFC 8628) แทน
เซิร์ฟเวอร์จะแสดงรหัสผู้ใช้แบบสั้นและ URL ของ Google คุณอนุมัติบนอุปกรณ์ใดก็ได้
ที่มีเบราว์เซอร์ แล้วเซิร์ฟเวอร์จะโพลล์จนกว่าคุณจะอนุมัติ การติดตั้งแบบไม่มี
ส่วนติดต่อจึงเชื่อมบัญชีได้ ก็เพราะไม่มีเอนด์พอยต์สำหรับเปลี่ยนเส้นทางให้ต้องโฮสต์
สิ่งที่ต้องรู้ก่อนนำข้อมูลรับรองของคุณมาเองก็คือ ชนิดไคลเอนต์ต้องเป็น
“TV and Limited Input devices” ของ Google Google ให้เฉพาะชุดสโคปที่อยู่ใน
รายการอนุญาตแก่ไคลเอนต์ชนิดนั้น และโปรเจกต์ที่ไม่ได้อนุญาตให้ใช้ Calendar กับ
ชนิดนี้จะล้มเหลวด้วย invalid_scope — คุณต้องใช้ไคลเอนต์แบบ loopback หรือ
แบบเว็บแทน
โทเค็นไม่ออกจากเซิร์ฟเวอร์เลย โทเค็นถูกเขียนลง secrets.json ของเซิร์ฟเวอร์
ในไดเรกทอรีข้อมูล โดยใช้คีย์ google_google:<workspaceId>:<email> อยู่ข้าง
ฐานข้อมูลและภายใต้ขอบเขตความเชื่อถือของไฟล์ระบบโฮสต์เดียวกัน เซิร์ฟเวอร์รีเฟรช
การเข้าถึงให้อัตโนมัติ และเมื่อ Google ทำให้บัญชีใช้ไม่ได้อย่างถาวร (เซสชันถูก
เพิกถอนหรือหมดอายุไปนานแล้ว) จะเผยแพร่ CalendarAuthExpired และแสดงแบนเนอร์
เชื่อมต่ออีกครั้ง แทนที่จะล้มเหลวอย่างเงียบๆ
บิลด์จากซอร์สไม่แนบข้อมูลรับรอง Google มาให้เลยแม้แต่รายการเดียว — คุณต้องใส่
client id และ secret ของคุณเอง ส่วนบิลด์รุ่นทางการฝังไคลเอนต์ device code
ที่ไม่เป็นความลับไว้ เพื่อให้ขั้นตอนการเชื่อมต่อใช้งานได้ทันที เซิร์ฟเวอร์เก็บ
เพียงเครื่องหมายที่อ้างอิงถึงมัน ไม่เคยเก็บสำเนา GOOGLE_OAUTH_CLIENT_ID
(พร้อม secret) ในสภาพแวดล้อมมีความสำคัญเหนือคู่ที่ฝังมาเสมอ จงใจไม่มีแฟล็ก
--google-client-id เพราะแฟล็กที่ไม่รู้จักจะถูกมองข้าม และ secret บนบรรทัดคำสั่ง
นั้นอ่านได้ผ่าน ps
หากต้องการรันโปรเจกต์ Google ของคุณเอง ดู เชื่อมต่อ Google Calendar
การซิงค์
หัวข้อที่มีชื่อว่า “การซิงค์”เซิร์ฟเวอร์ดึงหน้าต่างแบบเลื่อนของเหตุการณ์จากแต่ละบัญชีที่เชื่อมไว้ — ทุกปฏิทิน ในบัญชี ไม่ใช่แค่ปฏิทินหลัก — ทุกสองนาที และดึงตามต้องการด้วย (ตอนเริ่มทำงาน ตอนเชื่อมต่อ รีเฟรชเอง) รอบที่ถี่ขนาดนี้ทำได้เพราะการกวาดเป็นแบบเพิ่มพูน ปฏิทินแต่ละอันมีโทเค็นซิงค์ของตัวเอง ปฏิทินที่ไม่มีการจึงเสียเพียงการตอบกลับที่ เกือบว่างเปล่าหนึ่งครั้ง แทนที่จะดึงหน้าต่างห้าเดือนซ้ำ
เหตุการณ์ที่เกิดซ้ำถูกคลี่ออกฝั่งเซิร์ฟเวอร์ ไคลเอนต์จึงไม่ต้องตีความกฎ การเกิดซ้ำเลย การไปยังเดือนที่อยู่นอกหน้าต่างปัจจุบันจะโหลดช่วงนั้นแบบ lazy เหตุการณ์ที่ถูกลบหรือถูกย้ายออกนอกช่วงจะถูกปรับปรุงให้ตรงกันในรอบซิงค์ถัดไป
| มุมมอง | สิ่งที่แสดง |
|---|---|
| เดือน | ตารางเต็มเดือน (ขับเคลื่อนด้วยแพ็กเกจ kalender) |
| สัปดาห์ | เหตุการณ์ที่มีเวลาของหนึ่งสัปดาห์ในตารางเวลา |
| วัน | เหตุการณ์ที่มีเวลาของวันเดียวในตารางเวลา |
| วาระ | รายการเหตุการณ์ที่กำลังจะมาถึงแบบเลื่อนได้ |
เปิดปฏิทินได้ที่ /calendar ส่วนการเลือกเหตุการณ์จะเปิดรายละเอียดที่
/calendar/:eventId มุมมองที่คุณเลือกถูกเก็บไว้ในการตั้งค่าของไคลเอนต์ตัวนั้นเอง
จึงไม่ตามคุณไปยังอุปกรณ์อื่น
การแจ้งเตือนการประชุม
หัวข้อที่มีชื่อว่า “การแจ้งเตือนการประชุม”ตัวจัดตารางทำงานทุกนาทีเพื่อสแกนหาเหตุการณ์ที่จะเริ่มภายในช่วงเวลาล่วงหน้าที่
ตั้งค่าได้ แล้วยิงการแจ้งเตือน “การประชุมกำลังจะเริ่ม” (เป็น
เหตุการณ์โดเมน MeetingStartingSoon)
การแจ้งเตือนจะพา URL เข้าร่วมมาด้วยเมื่อมี และการคลิกจะเปิดรายละเอียดของเหตุการณ์
การแจ้งเตือนถูกตัดรายการซ้ำโดยเทียบกับ alertedAt ของเหตุการณ์ การประชุมเดียวกัน
จึงไม่แจ้งเตือนซ้ำ แม้จะข้ามการรีสตาร์ต และเหตุการณ์ที่เวลาเริ่มผ่านไปแล้วตอนที่
แอปปิดอยู่จะไม่ถูกเล่นซ้ำ
มีสองขีดจำกัดที่พลาดได้ง่าย ตัวจัดตารางทำงาน ฝั่งไคลเอนต์บนเดสก์ท็อป และเฉพาะ เวิร์กสเปซที่คุณเปิดอยู่เท่านั้น — เวิร์กสเปซที่คุณไม่ได้อยู่จะไม่แจ้งเตือนใดๆ และบิลด์เว็บไม่มีไปป์ไลน์การแจ้งเตือนของระบบปฏิบัติการเลย จึงไม่แจ้งเตือนใดๆ เช่นกัน
บันทึกและลิงก์
หัวข้อที่มีชื่อว่า “บันทึกและลิงก์”จากเหตุการณ์ในปฏิทิน คุณเริ่มการบันทึกการประชุม ที่ตั้งต้นด้วยชื่อเหตุการณ์ได้ Control Center เก็บลิงก์แบบหนึ่งต่อหนึ่งระหว่าง การบันทึกกับเหตุการณ์ บันทึกการประชุมและรายการในปฏิทินจึงเชื่อมกันอยู่ โดยที่ฟีเจอร์ใดไม่ต้องพึ่งพาอีกฟีเจอร์หนึ่ง
เริ่มบันทึกและลิงก์ ใช้ได้เฉพาะเดสก์ท็อป บนไคลเอนต์เว็บ การกระทำนี้จะรายงานว่า การบันทึกใช้งานไม่ได้ — แม้ว่ากระบวนการบันทึกของหน้าจอการประชุมเองจะทำงานได้ใน เบราว์เซอร์
ดูเพิ่มเติม
หัวข้อที่มีชื่อว่า “ดูเพิ่มเติม”- การประชุมและการถอดเสียง: สิ่งที่เกิดขึ้นหลังจากคุณเริ่มบันทึก
- เวิร์กสเปซและการแยกโดเมน: ทำไมบัญชีปฏิทินจึงแยกตามเวิร์กสเปซ
- เหตุการณ์โดเมน:
MeetingStartingSoonและCalendarAuthExpired - เชื่อมต่อ Google Calendar
- บันทึกและสรุปการประชุม