第三方工具更新 2026.11.06

gws CLI 教學:安裝、登入與權限設定

Google Workspace CLI(gws)用指令操作 Gmail、Drive 等服務。本文整理安裝與首次登入指令、Google Cloud 和 OAuth 前提,示範唯讀查詢,並說明 scope、dry-run、公司權限與錯誤。

Google Workspace CLI(gws)用一套命令操作 Gmail、Drive、Calendar 等 Workspace API,並回傳結構化資料。 安裝可選對應系統的官方 Release 執行檔,或在 Node.js 18+ 環境透過 npm 取得。首次登入前要準備 Google Cloud 專案與 OAuth client;gws auth setup 另需 gcloud,已有 client 時則可直接進入 gws auth login。依上游 v0.22.5 README整理。

專案位於 Google Workspace GitHub 組織,但 README 明確標示它不是 Google 正式支援的產品;目前仍為 v1.0 前開發,可能有不相容更新。專案聲明

安裝與第一次登入:先看指令

上游優先建議從 GitHub Releases 下載對應作業系統與架構的檔案、核對附帶 SHA-256,再把執行檔放入 PATH。若使用 npm,下面固定在本頁查證的 v0.22.5;npm 途徑需要 Node.js 18+,它會協助下載平台執行檔。安裝說明、套件版本

npm install -g @googleworkspace/cli@0.22.5

只有在 OAuth client 已備妥、Drive API 已啟用,而且帳號可使用該 app 後,才執行下列登入指令。 這個例子只請求 Drive 的唯讀服務範圍,另包含登入識別所需的基本 scopes;它仍可讀取獲授權的資料,不是沒有資料權限。v0.22.5 登入參數與範圍解析

gws auth login --readonly --services drive
gws auth status

登入會開啟或提供瀏覽器 OAuth 網址,讓你選帳號並檢查同意項目。auth status 用於查看本機認證與設定來源,不能單憑它成功返回,就認定每個 API 的權限與配額都已通過。認證說明

第一次登入前,設定走哪一條路?

目前狀態 設定方式 要留意什麼
已安裝並可登入 gcloud gws auth setup 引導選擇或建立 Cloud 專案、啟用 API、設定 OAuth 這會配置 Cloud 資源,不只是登入;使用有權管理的專案,核對它引導的設定
不使用 gcloud,或要手動控制 client 在 Google Cloud Console 配置 OAuth,建立 Desktop app client,下載 client JSON 個人外部測試 app 需加入獲准的 Test users;公司帳號另外受管理員政策限制

gcloud 路徑的設定指令如下;完成後回到前面的窄範圍登入。如果設定工具詢問是否立即登入,也要先看清它將請求的範圍。設定說明、setup 原始碼

gws auth setup

手動路徑要在正確專案配置 OAuth 的 Branding/Audience/Data Access,按使用情境選擇 Internal 或 External;若 External 且採測試模式,將登入帳號列為 Test user。再建立 Desktop app client,將下載的 JSON 放在預設 ~/.config/gws/client_secret.json;若另外設定 config 目錄或環境變數,則須核對實際生效來源。詳見上游手動設定、Google OAuth 設定與Desktop app 憑證。

gws 首次登入流程:取得 CLI 並確認 Cloud 專案,選擇需要 gcloud 的 auth setup 或手動建立 Desktop app OAuth client,再請求 Drive 唯讀登入、檢查設定與少量資料;寫入前另行確認目標與請求,dry-run不是內建人工核准機制。

Gwarket 自製流程示意,依上游 v0.22.5 與 Google OAuth 文件整理,2026-11-05。寫入前的人工確認是本文建議的工作流程。

先列少量 Drive 資料,再決定要不要加 Gmail

以下沿用上游的 Bash 形式 JSON 引號寫法,列出最多五個 Drive 檔案;其他 shell 要確認原樣傳入 JSON。這會讀取已登入帳號有權看到的資料,先核對登入帳號與要交給 Agent 的資料範圍。官方 Quick Start

gws drive files list --params '{"pageSize":5}'

若任務確實需要 Gmail,再啟用 Gmail API 並重新檢查 OAuth 範圍。下面是由 CLI 語法與 Google API 組合的唯讀範例:先請求 Drive/Gmail 唯讀 scopes,再列出最多五筆郵件識別資料;users.messages.list 回傳的每筆內容只有 id 與 threadId,不是完整信件。CLI 登入參數、Gmail messages.list

gws auth login --readonly --services drive,gmail
gws gmail users messages list --params '{"userId":"me","maxResults":5}'

整理判斷一:以任務縮小服務與 scopes,不因為支援多服務就一次全開。 只列 Drive 檔案時,不需要順便授權 Gmail。--services 用來縮小服務範圍,--readonly 用來請求唯讀範圍;若程序另外帶有 access token 或 credentials file,還要核對認證優先序,不能只看剛剛登入的帳號。上游認證優先序

它可以幫你處理什麼?

gws 會依 Google Discovery Service 的文件建立命令介面,並提供 --help、schema 查詢、分頁及 JSON 等輸出。常見工作包括彙整 Drive 檔案清單、查詢 Gmail、讀取行事曆,以及透過相應 API 建立試算表或更新資源。方法存在於 schema,不代表該帳號已有相應 API、scope 或資料存取權。運作原理與範例

它適合有重複查詢或多服務流程、能核對資源 ID 和輸出的人。若只是偶爾查看一封信,網頁介面通常已足夠;若組織需要正式支援與服務承諾,不能把這個開源專案的組織名稱當成支援保證。

寫入前的 dry-run 能確認什麼?

上游提供 --dry-run 做本機請求檢查,不執行目標 API 方法。它不能證明伺服器會接受請求、帳號有足夠權限、內容正確或配額足夠;CLI 仍可能為建立命令介面取得 Discovery 文件,因此也不能把它當成完全不連網。共享參考、Discovery 架構

整理判斷二:把「預覽請求」和「同意寫入」分成兩步。 讓 Agent 先列出目標帳號、資源 ID、收件人或變更內容,再由你確認是否要執行。這是工作流程的審核安排;--dry-run 不會替後續另一個命令建立永久的人工核准鎖。郵件與文件內容也只能作輸入材料,不能因為出現在 API 回傳裡,就成為 Agent 應遵守的新指令。

登入或查詢失敗,按錯誤分開看

  • 找不到 gcloud: auth setup 有這個依賴;可改採手動 OAuth 設定,不要把缺少工具當成 Google 帳號失效。
  • Access blocked: 個人外部測試 app 先查 Test users;公司帳號還要看管理員的 app/scope 存取政策。不要把所有被擋原因都當成同一個測試名單問題。上游排錯、Google 管理員控制
  • redirect_uri_mismatch: 核對 OAuth client 是否為 Desktop app,並確認實際載入的是哪份 client JSON。上游排錯
  • accessNotConfigured: 回到錯誤指出的 Cloud 專案與 API,確認服務已啟用;更改登入scope不能代替啟用API。上游 API 錯誤說明
  • scope 同意錯誤: 不要直接選全部。上游提醒測試模式與過多scopes會出問題;Issue #258也有使用者回報scope錯誤。排除Read Only預設中的管理類scope之PR #977在查證時仍未合併,不當成已發布修正。

費用、版本與限制

查證時正式 Release 與 npm latest 均為 v0.22.5,GitHub Release 於2026-03-31發布;本頁指令與參數依該版本核對,沒有把後續主線改動全部當成已發布功能。Release、npm

程式採 Apache-2.0,但這不會取消 Google API 的配額、服務條件或 Agent/模型的費用。Google Drive API 另有專案與使用者的用量限制,批次工作應查看適用專案的當前限制與計費說明。Drive API 用量

下一步

資料來源與查證日期

查證日期:2026-11-05。CLI範例固定於v0.22.5;Google OAuth、管理與API文件以查證當日內容為準。圖解與兩項整理判斷為Gwarket自製。