AI-translated from English; not yet reviewed by a fluent editor.

# 透過五項讀取檢查將 Claude Code 連接到 Google Workspace

> 依照文件設定，以限定範圍的 Drive、Sheets、Docs 和 Gmail 讀取，檢查 Claude Code 使用的 Google Workspace CLI 帳戶、OAuth 授權和權限提示。

By BIG CHANGE Editorial

Published: 2026-10-20T09:34:40.461Z
Updated: 2026-10-20T09:34:40.461Z
Canonical: https://bigchange.ai/blog/claude-code-google-workspace-cli-read-checks

![Conceptual charcoal illustration of one person studying abstract command lines on a desktop monitor, with a plain folder, grid sheet, document and sealed envelope on the table.](https://bigchange.ai/api/media/file/gws-claude-read-check-workstation-hero-v1.png)
AI-generated conceptual illustration by BIG CHANGE.

Claude Code 可以透過本機 shell 執行 Google Workspace CLI（`gws`）命令，並使用在 `gws` 中完成身分驗證的 Google 帳戶。獲得授權的帳戶擁有者，可以用 Drive、Sheets、Docs 和 Gmail 中各一筆無敏感內容的紀錄檢查連接。先確認帳戶和授權。本指南依據 2026 年 10 月 20 日檢查的 CLI 儲存庫文件介面編寫。BIG CHANGE 未安裝這兩個工具，也未存取任何帳戶。

## 關鍵變化

- **發生了什麼變化：** 目前的 `gws` CLI 將 Google Workspace API 方法提供為 Claude Code 可以執行的 shell 命令。一個已驗證帳戶可連接多項工作服務，但存取範圍受實際授權和代理程式的 shell 權限約束。
- **為何重要：** 讓代理程式查看指定檔案或郵件的同一連接，也可能存取 OAuth 範圍涵蓋的其他資料。帳戶擁有者可以先比較終端機和 Claude Code 傳回的少量已知結果，再決定是否委派更多工作。
- **需要留意：** 每次設定改變，都要檢查已安裝 CLI 產生的命令和工作階段實際生效的權限規則。CLI 尚未達到 1.0 版本；範圍較小的範例查詢或欄位遮罩，不會縮小整個帳戶的授權。

## 連接前的準備

使用專用且經過核准的 Google 測試帳戶，不放入敏感內容，並使用你有權設定 OAuth 的 Cloud 專案。向管理員確認是否允許這四個 API 及所要求的授權。準備一個名稱唯一的現有 Drive 檔案、一份小範圍內包含已知值的試算表、一份只有一個分頁的簡短純文字 Google Doc，以及一封無敏感內容的 Gmail 郵件。對於 Gmail，取得郵件的 RFC `Message-ID`，來源為 **Show original**。你將把這些原始內容與 CLI 結果比較。這些檢查不會建立或傳送任何內容。

在受控電腦上安裝 Claude Code。安裝 `gws`，下載來源為 [儲存庫中適用於你作業系統的發行版本](https://github.com/googleworkspace/cli/releases)，或在具備 Node.js 18 或更新版本時，使用文件記載的命令：

```bash
npm install -g @googleworkspace/cli
gws --version
gws --help
gws auth login --help
```

私下記錄已安裝的 CLI 和 Claude Code 版本。CLI 仍未達到 1.0 版本，命令根據 Google 的 API 探索文件產生。執行範例前，檢查已安裝版本的說明和下列方法結構。

## 1. 設定範圍受限的 OAuth 登入

在獲核准的 Cloud 專案中啟用 Drive、Sheets、Docs 和 Gmail API。設定 OAuth 對象，並建立 **Desktop app** 類型的用戶端。如果應用程式是 External 且處於測試階段，將選定帳戶加入測試使用者。將下載的用戶端 JSON 儲存到文件指定的 `~/.config/gws/client_secret.json` 位置，或使用透過 `GOOGLE_WORKSPACE_CLI_CONFIG_DIR` 選定的獨立目錄。將該目錄放在 Claude 專案之外，僅供帳戶擁有者存取。

登入前，私下檢查是否設定了 `GOOGLE_WORKSPACE_CLI_TOKEN` 或 `GOOGLE_WORKSPACE_CLI_CREDENTIALS_FILE`，包括是否透過 `.env` 檔案設定。這些來源的優先順序高於已儲存的 OAuth 憑證。不要輸出其值，也不要讓 Claude Code 讀取憑證檔案。使用乾淨的環境和預期的用戶端設定。

明確要求以下四個範圍：

```bash
gws auth login --scopes 'https://www.googleapis.com/auth/drive.metadata.readonly,https://www.googleapis.com/auth/spreadsheets.readonly,https://www.googleapis.com/auth/documents.readonly,https://www.googleapis.com/auth/gmail.readonly'
gws auth status
```

由你本人選擇帳戶並完成同意授權。指定版本的 CLI 原始碼也會加入 `openid`、`userinfo.email` 和 `userinfo.profile` 身分範圍。私下將同意頁面與 `gws auth status` 中的帳戶、授權和權杖有效性與預期比較；缺少的狀態欄位仍屬未驗證。若帳戶不正確，或仍有非預期的更廣授權，請停止。登入選擇器中的服務選擇只會篩選選項，不會自行設定這四個唯讀範圍。

這些授權範圍比範例要求更廣。Drive 中繼資料權限可讀取可存取檔案的中繼資料；Sheets 和 Docs 唯讀權限涵蓋可存取的試算表和文件；Gmail 唯讀權限可存取信箱內容。名稱、ID、儲存格範圍、查詢和欄位遮罩限制的是每次回應，不是權杖權限。shell 工具也可能存取本機憑證，因此隱藏檔案路徑或寫一條提示指令，並不能隔離憑證。

## 2. 直接執行限定範圍的讀取

先使用 `gws schema drive.files.list` 檢查各方法，其他方法使用相應的結構名稱。如果參數與已安裝版本不同，請查看產生的 `--help`。下列命令採用 Bash 單引號語法；改用其他 shell 時，請明確調整引號。只替換測試識別碼和名稱。每次執行一個命令，私下保留實際回應或錯誤，不包含權杖或敏感內容。

尋找指定名稱的 Drive 檔案。JSON 中的 `\u0027` 會逸出 Drive 搜尋運算式內的單引號，同時保留 Bash 的引號結構：

```bash
gws drive files list --params '{"pageSize":5,"q":"trashed = false and name = \u0027GWS connection check\u0027","fields":"files(id,name,mimeType),nextPageToken,incompleteSearch"}'
```

將傳回的 ID 和名稱與 Drive 中的檔案比較。沒有相符結果或出現 `incompleteSearch`，都不能證明已存取到目標檔案。

使用實際試算表 ID 和分頁名稱讀取已知儲存格：

```bash
gws sheets spreadsheets values get --params '{"spreadsheetId":"SPREADSHEET_ID","range":"Sheet1!A1:C3","fields":"range,majorDimension,values"}'
```

將傳回值與試算表比較。Google 可能省略尾端空白儲存格，因此應準備非空白的已知值。

讀取簡短測試文件的第一個分頁：

```bash
gws docs documents get --params '{"documentId":"DOCUMENT_ID","includeTabsContent":false,"fields":"documentId,title,body(content(paragraph(elements(textRun(content)))))"}'
```

核對 ID、標題和已知文字。這個限定回應不會檢查其他分頁、註解或完整文件結構。

對於 Gmail，使用現有郵件的 RFC `Message-ID` 搜尋，再用傳回的 Gmail ID 要求兩個標頭：

```bash
gws gmail users messages list --params '{"userId":"me","maxResults":1,"q":"rfc822msgid:MESSAGE_ID_FROM_SHOW_ORIGINAL","fields":"messages(id,threadId),nextPageToken,resultSizeEstimate"}'
gws gmail users messages get --params '{"userId":"me","id":"GMAIL_MESSAGE_ID","format":"metadata","metadataHeaders":["Message-ID","Subject"],"fields":"id,threadId,payload(headers)"}'
```

將傳回的 `Message-ID` 和無敏感內容的主旨與原始郵件比較。第一次呼叫傳回郵件 ID，而不是標頭。第二次要求標頭中繼資料，而非郵件內文。第一次回應為空，就無法完成第二項檢查。較窄的 Gmail 中繼資料 OAuth 範圍不允許此處使用的搜尋查詢；明確的 Gmail 唯讀授權則允許。

## 3. 透過 Claude Code 重複檢查並逐次決定權限

在你控制的專案中啟動 Claude Code，使用同一個已核准的帳戶設定。在 `/permissions` 中檢查實際生效的模式和 shell 規則。使用 Manual（也稱為 `default`）及針對實際 shell 工具的 **Ask** 規則；依組織政策處理任何較廣的允許規則或略過規則。不要為 `gws *` 或 shell 包裝程式提供全面授權。每次提出命令時，檢查完整命令，只核准你要執行的限定讀取。

以一般語言要求 Claude Code，針對相同測試目標提出上述五個命令，並且只在你做出權限決定後逐一執行。要求它回報命令輸出或錯誤，不讀取憑證、不擴大查詢、不執行寫入。接著將每個結果與直接結果及原始物件比較。專案指令可描述任務，但存取權由實際生效的工具權限和 OAuth 授權決定。

| 服務 | 兩種路徑都需要的完成證據 |
| --- | --- |
| Drive | 相同的檔案 ID 和名稱；搜尋完整。 |
| Sheets | 預期分頁、範圍及已知儲存格值。 |
| Docs | 預期 ID、標題和第一個分頁的文字。 |
| Gmail | 清單找到測試郵件；中繼資料讀取結果與其 `Message-ID` 和主旨相符。 |

在私密檢查表中記錄版本、已驗證帳戶、實際授權、目標 ID、直接結果、Claude 結果及錯誤。要求失敗、成功但為空的回應，以及已驗證物件，是三種不同結果。只有四項服務都經兩種路徑驗證，才算完成。

## 檢查失敗時

登入時出現 **Access blocked**，可能是測試帳戶未加入 OAuth 應用程式的測試使用者名單。若出現 API 或範圍錯誤，先確認已啟用的 API、選定帳戶和實際授權，再申請經核准的重新同意。清單為空時，檢查精確目標、查詢和帳戶。如果安裝版本的說明與範例不同，繼續前先使用目前的方法結構。如果 Claude Code 提議修改資料或擴大存取的命令，在權限提示處拒絕，並返回限定讀取。

CLI 儲存庫無須購買付費套件即可使用。帳戶或 Workspace 方案、Cloud 配額，以及 Claude Code 方案或 API 用量，可能產生費用。讀取的內容可能由 Claude Code 設定的供應商處理，因此只使用經核准的非敏感測試資料。CLI 明確表示，它不是 Google 官方支援的產品，並警告 1.0 之前可能有變動。BIG CHANGE 未測試效能或相容性。在任何寫入、傳送或帳戶變更之前停止。 [Claude 獨立的 Google Workspace 外掛程式](https://bigchange.ai/blog/claude-google-workspace-add-on-edit-open-files) 透過另一種路徑，在獲得核准後編輯已開啟的檔案。

## Sources

- [Google Workspace CLI 的 README](https://github.com/googleworkspace/cli/blob/a3768d0e82ad83cca2da97724e46bea4ff0e6dbd/README.md) — 檢查的是固定提交版本的官方儲存庫，日期為 2026 年 10 月 20 日。它說明安裝、手動 OAuth 設定、動態命令、憑證優先順序、版本不穩定性，以及不受官方產品支援的提示，不能證明 BIG CHANGE 已執行成功。
- [Google Workspace CLI 命令脈絡](https://github.com/googleworkspace/cli/blob/a3768d0e82ad83cca2da97724e46bea4ff0e6dbd/CONTEXT.md) — 固定提交版本的官方命令指南，說明巢狀方法、--params、結構檢查和限定欄位選擇；必須檢查實際安裝版本的說明。
- [Google Workspace CLI 身分驗證實作](https://github.com/googleworkspace/cli/blob/a3768d0e82ad83cca2da97724e46bea4ff0e6dbd/crates/google-workspace-cli/src/auth_commands.rs) — 固定版本的驗證原始碼確認了自訂 --scopes、獨立服務選擇器行為及附加身分範圍。檢查原始碼不能顯示讀者實際獲得的授權。
- [Google Workspace API 啟用指南](https://developers.google.com/workspace/guides/enable-apis) — Google 關於在 Cloud 專案啟用 API 的說明；存取仍受專案和管理員政策約束。
- [Drive files.list 參考](https://developers.google.com/workspace/drive/api/reference/rest/v3/files/list) — 確認了用於限定中繼資料搜尋的 Drive q、pageSize 和回應欄位。限定要求不會縮小 OAuth 權限。
- [Sheets spreadsheets.values.get 參考](https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets.values/get) — 確認透過試算表 ID 和 A1 範圍讀取及其回應結構；尾端空白儲存格可能被省略。
- [Docs documents.get 參考](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/get) — 確認文件讀取方式，以及 includeTabsContent 為 false 時只限第一個分頁的限制。範例使用只有一個分頁的純文字測試文件。
- [Gmail messages.list 和 messages.get 參考](https://developers.google.com/workspace/gmail/api/reference/rest/v1/users.messages/list) — list 參考說明依郵件 ID 搜尋和只含 ID 的清單結果；gmail.metadata 不支援 q。配套 get 參考為 https://developers.google.com/workspace/gmail/api/reference/rest/v1/users.messages/get，說明 METADATA 格式下的 metadataHeaders。
- [Claude Code 權限](https://code.claude.com/docs/en/permissions) — Anthropic 關於 Manual/default 模式、Ask 規則、實際工具權限和 shell 核准提示的目前參考。它不能證明某個讀者工作階段具有特定規則。
