Schat — Google Chat 替代前端
以 Chrome Extension 橋接私有協定,替既有 SaaS 介面打造符合團隊工作習慣的替代前端。
正式營運GWP4 自有產品案例
本案例為 GWP4 自行開發的產品或研究專案,並非外部客戶委託案。列出的內容用於呈現實際技術能力與做法。
- Chrome Extension
- 私有協定反向工程
- 即時訊息
- 既有系統橋接
背景與問題
被綁在特定 Workspace 工具上的團隊,常常無法改變工具本身,但介面的資訊密度、通知方式與缺少的功能(例如訊息排程)會實際影響每天的工作效率。官方 API 提供的能力不足以做出完整替代介面。
原本的處理方式
只能忍受原生介面,或自行用多個外掛拼湊部分功能。
設計目標
- 在不改動原服務的前提下,提供資訊密度更高的介面
- 補上原生缺少的功能:訊息排程、自訂提示音、桌面通知
- 維持與原服務的即時同步
解決方案
以 Chrome Extension 在原服務分頁內發送請求,沿用瀏覽器既有的登入狀態與驗證簽章,將私有協定的 RPC 包裝成本地前端可用的介面;前端以 React 重建訊息列、頻道分組與討論串動線,再疊加原生沒有的功能。
核心功能
- Slack 風格的高資訊密度介面
- 頻道分組與 pin
- 訊息排程
- 自訂 emoji 與提示音
- 桌面通知
系統架構
本地 React 前端(Vite)↔ Chrome Extension(MV3)↔ 原服務分頁內的請求代理 ↔ 私有 RPC 協定。驗證簽章由瀏覽器原生產生,不另行偽造。
技術選擇
- Chrome Extension MV3
- React + Vite
- 私有 RPC 協定橋接
開發過程與限制
- 官方 API 能力不足,必須透過瀏覽器分頁內的請求才能取得完整功能
- 私有協定沒有文件,每個功能都需先觀察實際流量再重現
- 上游服務改版時介面可能失效,屬於維護成本較高的做法
可驗證指標
以下皆為可查證的技術事實,不含未經驗證的成效數字。
- 執行環境
- 本地前端 + Chrome Extension(MV3)
- 補齊功能
- 訊息排程、自訂提示音、桌面通知
- 專案狀態
- 自用中,持續維護
可以延伸到哪些產業
- 被既有 SaaS 綁定但介面不合用的團隊
- 需要在不更換系統的前提下改善操作效率的公司
- 需要與無公開 API 的既有系統整合的專案