OpenClaw 連接 Google Drive 特定資料夾完整教學

OpenClaw 連接 Google Drive 特定資料夾完整教學

讓你的 OpenClaw AI 助手能上傳、修改、管理 Google Drive 中指定資料夾的所有檔案


目錄

  1. 前置準備
  2. 建立 Google Cloud 專案與啟用 API
  3. 設定 OAuth 同意畫面
  4. 建立 OAuth 2.0 憑證
  5. 安裝 gogcli(gog)
  6. 認證 Google 帳號
  7. 取得目標資料夾 ID
  8. 測試 Google Drive 存取
  9. 連接到 OpenClaw
  10. 限制存取範圍到特定資料夾(安全做法)
  11. Claude Code 自動化指令

1. 前置準備

在開始之前,請確認你具備以下條件:

  • 一台 Mac、Linux 電腦或 VPS 伺服器(建議 24 小時運行)
  • 一個 專用的 Google 帳號(強烈建議不要使用個人主帳號,以防安全風險)
  • 已安裝 OpenClaw 並可正常運行
  • 安裝好 Git、Go 語言環境(或 Homebrew for Mac)
  • 一個可以查詢問題的 LLM(例如 Claude)在另一個分頁待命

:warning: 重要安全提醒: 授予 OpenClaw 存取你的 Google 服務具有固有的安全風險。如果你的伺服器遭到入侵,惡意人士可能獲得你的 Google Drive 存取權限。請務必使用專用帳號。


2. 建立 Google Cloud 專案與啟用 API

步驟:

  1. 前往 Google Cloud Console
  2. 點擊頂部的「選擇專案」→「新建專案
  3. 專案名稱輸入:OpenClaw Drive Integration(或你喜歡的名稱)
  4. 點擊「建立
  5. 建立完成後,切換到該專案
  6. 點擊左上角漢堡選單 ☰ →「API 和服務」→「已啟用的 API 和服務
  7. 點擊上方「+ 啟用 API 和服務
  8. 搜尋並啟用以下 API:
  • Google Drive API — 搜尋 “Google Drive API”,點擊並啟用

:light_bulb: 如果你之後還想用 Gmail、日曆等功能,也可以一併啟用 Gmail API 和 Google Calendar API。


3. 設定 OAuth 同意畫面

  1. 在左側選單點擊「API 和服務」→「OAuth 同意畫面
  2. 選擇使用者類型:
  • 如果是 Google Workspace 帳號,選「內部
  • 如果是一般 Gmail 帳號,選「外部
  1. 填寫應用程式名稱(例如 OpenClaw Bot
  2. 填寫你的電子郵件作為支援聯絡信箱
  3. 在「範圍(Scopes)」頁面,新增以下範圍:
https://www.googleapis.com/auth/drive

這會授予 Google Drive 的完整讀寫權限。雖然 Google 也提供 drive.file 範圍(僅限應用程式自己建立或開啟的檔案),但若你需要存取已有的資料夾和檔案,必須使用完整的 drive 範圍。

  1. 如果你選了「外部」,在「測試使用者」頁面加入你的專用 Google 帳號的 Email
  2. 儲存並繼續

4. 建立 OAuth 2.0 憑證

  1. 前往「API 和服務」→「憑證
  2. 點擊上方「+ 建立憑證」→「OAuth 用戶端 ID
  3. 應用程式類型選「桌面應用程式
  4. 名稱填入:OpenClaw Desktop Client
  5. 點擊「建立
  6. 彈出視窗會顯示你的 Client IDClient Secret
  7. 點擊「下載 JSON」,儲存為 client_secret.json

:file_folder: 請妥善保管此檔案,它包含你的 OAuth 憑證,不可外洩。


5. 安裝 gogcli(gog)

gogcli(指令為 gog)是一個開源的 CLI 工具,作為 OpenClaw 與 Google Workspace 之間的橋樑。

Mac 使用者(透過 Homebrew):

brew install steipete/tap/gogcli

Linux / VPS 使用者(從原始碼編譯):

# 1. 確認已安裝 Go 語言(建議 1.22+)
sudo apt update && sudo apt install -y git make wget
cd /tmp
wget https://go.dev/dl/go1.26.0.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.26.0.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc
go version

# 2. Clone 並編譯(使用穩定版本 tag)
cd ~
git clone https://github.com/steipete/gogcli.git
cd gogcli
git fetch --tags
git checkout v0.11.0   # 請檢查最新穩定版本
make

# 3. 安裝到系統路徑
sudo make install
# 或手動複製
sudo cp bin/gog /usr/local/bin/

驗證安裝:

gog --version

6. 認證 Google 帳號

步驟 1:匯入憑證

gog auth credentials /path/to/client_secret.json

步驟 2:新增帳號並授權

gog auth add your-bot@gmail.com --services drive

:light_bulb: 如果你也需要 Gmail 和日曆,可以用:

gog auth add your-bot@gmail.com --services gmail,calendar,drive,sheets,docs

執行後會出現一個 URL,在瀏覽器中開啟它來完成 OAuth 授權流程。

遠端伺服器(無圖形介面)的解決方案:

如果你在 VPS 上操作,需要使用 SSH tunnel:

# gog 會顯示一個帶有 port 號的 URL,例如 localhost:37045
# 在你的本地電腦開一個新終端,建立 SSH tunnel:
ssh -L PORT:localhost:PORT root@YOUR_VPS_IP

# 替換 PORT 為實際的 port 號
# 然後在本地瀏覽器開啟那個 URL 完成授權

也可以使用 --manual 旗標:

gog auth add your-bot@gmail.com --services drive --manual

驗證認證成功:

gog auth list

應該可以看到你的帳號和已授權的服務列表。


7. 取得目標資料夾 ID

你需要知道想讓 OpenClaw 存取的 Google Drive 資料夾的 ID。

方法 1:從瀏覽器取得

  1. 在瀏覽器開啟 Google Drive
  2. 進入你要授權的資料夾
  3. 從網址列複製 ID,例如:
https://drive.google.com/drive/folders/1ABcDeFgHiJkLmNoPqRsTuVwXyZ

其中 1ABcDeFgHiJkLmNoPqRsTuVwXyZ 就是資料夾 ID

方法 2:用 gog 搜尋

# 列出根目錄的檔案和資料夾
gog drive ls --max 50

# 搜尋特定名稱的資料夾
gog drive search "name = 'OpenClaw-Data' and mimeType = 'application/vnd.google-apps.folder'" --raw-query

:memo: 記下你的資料夾 ID,後續步驟需要用到。假設為 YOUR_FOLDER_ID


8. 測試 Google Drive 存取

列出特定資料夾中的檔案:

gog drive ls --parent YOUR_FOLDER_ID --max 20

上傳檔案到特定資料夾:

gog drive upload ./test-file.txt --parent YOUR_FOLDER_ID

建立子資料夾:

gog drive mkdir "子資料夾名稱" --parent YOUR_FOLDER_ID

下載檔案:

gog drive download FILE_ID --out ./downloaded-file.txt

搜尋資料夾內的檔案:

gog drive search "'YOUR_FOLDER_ID' in parents" --raw-query --max 50

分享資料夾給其他人:

gog drive share YOUR_FOLDER_ID --email someone@gmail.com --role writer

如果以上指令都能正常運作,恭喜你,Google Drive 已連接成功!:tada:


9. 連接到 OpenClaw

設定環境變數

編輯 OpenClaw 的環境設定檔:

nano ~/.openclaw/.env

加入你在 gog auth add 步驟中設定的密碼:

GOG_PASSPHRASE=your_passphrase_here
GOG_ACCOUNT=your-bot@gmail.com

:warning: 請確保 OpenClaw 以同一個 Linux 使用者身分運行(即執行 gog auth add 的那個使用者),這樣才能讀取 ~/.config/gogcli/ 中的認證資料。

安裝 gog skill(技能)

如果你使用 ClawHub:

npx playbooks add skill openclaw/skills --skill gog

或在 clawhub.json 中加入:

{
  "plugins": {
    "official-openclaw-gog": {
      "enabled": true,
      "auto_update": true
    }
  }
}

10. 限制存取範圍到特定資料夾

Google Drive API 本身不支援「僅授權特定資料夾」的 OAuth 範圍。完整的 drive scope 會授予所有檔案的存取權。

因此,安全限制需要在應用層面實現,以下有幾種方法:

方法 A:在 OpenClaw 提示詞(System Prompt)中限制

在你的 OpenClaw 設定中加入系統提示:

你只能操作 Google Drive 中資料夾 ID 為 "YOUR_FOLDER_ID" 的資料夾。
所有 gog drive 指令都必須加上 --parent YOUR_FOLDER_ID。
不得存取、列出、修改此資料夾以外的任何檔案。

方法 B:使用 gog 指令白名單功能

gogcli 支援指令白名單,可以限制只允許特定指令:

# 只允許 drive 相關指令
GOG_ENABLE_COMMANDS=drive

方法 C:用 Service Account + 資料夾分享

這是最安全的做法:

  1. 在 Google Cloud Console 建立一個 Service Account
  2. 下載 Service Account 的 JSON 金鑰
  3. 把你想讓 OpenClaw 存取的資料夾分享給 Service Account 的 Email
  4. 設定 gog 使用 Service Account:
gog auth service-account /path/to/service-account-key.json

這樣 Service Account 只能看到你明確分享給它的資料夾,從根本上限制了存取範圍。


11. Claude Code 自動化指令

以下是你可以直接貼到 Claude Code 中使用的 prompt,讓 Claude Code 幫你自動完成整個設定流程:


Prompt 1:完整環境建置

我需要你幫我在這台機器上設定 OpenClaw 的 Google Drive 整合。請按照以下步驟執行:

1. 檢查系統環境:確認 Go、Git、Make 是否已安裝,如果沒有就安裝
2. Clone gogcli 的 repo 並編譯安裝:
   - git clone https://github.com/steipete/gogcli.git
   - cd gogcli && git fetch --tags
   - checkout 最新穩定版本的 tag
   - make && sudo make install
3. 驗證 gog 是否安裝成功(gog --version)
4. 顯示接下來需要手動完成的步驟清單(OAuth 憑證設定等)

請在每個步驟完成後回報結果。

Prompt 2:認證與連接 Google Drive

我已經有了 OAuth 憑證檔案在 ~/client_secret.json。請幫我:

1. 執行 gog auth credentials ~/client_secret.json
2. 執行 gog auth add MY_EMAIL@gmail.com --services drive --manual
   (把 MY_EMAIL 替換成我的實際 email)
3. 告訴我接下來要在瀏覽器完成什麼操作
4. 認證完成後,用 gog auth list 驗證
5. 用 gog drive ls --max 10 測試是否能存取 Drive

Prompt 3:鎖定到特定資料夾並測試

我的 Google Drive 目標資料夾 ID 是 YOUR_FOLDER_ID。請幫我:

1. 列出該資料夾中的所有檔案:gog drive ls --parent YOUR_FOLDER_ID --max 50
2. 建立一個測試檔案並上傳到該資料夾
3. 驗證上傳成功
4. 下載剛上傳的檔案驗證內容一致
5. 刪除測試檔案

確認完成後,幫我寫一個 shell script 叫 gdrive-sync.sh,
功能是把本地 ~/openclaw-data/ 目錄下所有新增或修改的檔案
同步上傳到 Google Drive 的 YOUR_FOLDER_ID 資料夾。

Prompt 4:OpenClaw 整合設定

請幫我設定 OpenClaw 讓它能使用 Google Drive。需要:

1. 確認 OpenClaw 的 .env 檔案位置
2. 加入以下環境變數:
   - GOG_ACCOUNT=MY_EMAIL@gmail.com
3. 安裝 gog skill:npx playbooks add skill openclaw/skills --skill gog
4. 在 OpenClaw 的系統提示中加入以下規則:
   「Google Drive 操作僅限於資料夾 ID: YOUR_FOLDER_ID。
    所有 gog drive 指令必須使用 --parent YOUR_FOLDER_ID。
    禁止存取此資料夾以外的任何檔案或資料夾。」
5. 測試從 OpenClaw 發送一個 Drive 指令,驗證整合正常

請在每個步驟完成後回報狀態。

常見問題

Q: 認證時出現 403 access_denied 錯誤?

A: 這通常是因為 OAuth 應用程式處於「測試」模式,你的 Email 沒有被加入測試使用者。前往 Google Cloud Console → OAuth 同意畫面 → 測試使用者,加入你的 Email。

Q: Token 過期了怎麼辦?

A: 執行以下指令重新認證:

rm -rf ~/.config/gogcli/keyring
gog auth add your-bot@gmail.com --services drive --manual

Q: 如何只給 OpenClaw 讀取權限?

A: 在認證時使用唯讀 scope:

gog auth add your-bot@gmail.com --services drive --readonly

Q: 可以同時管理多個 Google 帳號嗎?

A: 可以。gog 支援多帳號,用 --account 旗標切換:

gog drive ls --account work@gmail.com --parent FOLDER_ID
gog drive ls --account personal@gmail.com --parent FOLDER_ID

常用 gog drive 指令速查表

用途 指令
列出資料夾內容 gog drive ls --parent FOLDER_ID
搜尋檔案 gog drive search "關鍵字"
上傳檔案 gog drive upload ./file.pdf --parent FOLDER_ID
下載檔案 gog drive download FILE_ID --out ./file.pdf
建立資料夾 gog drive mkdir "資料夾名稱" --parent FOLDER_ID
取得檔案資訊 gog drive get FILE_ID
取得檔案 URL gog drive url FILE_ID
分享檔案 gog drive share FILE_ID --email user@gmail.com --role writer
複製檔案 gog drive copy FILE_ID "副本名稱"
替換檔案內容 gog drive upload ./new.pdf --replace FILE_ID
匯出 Google 文件 gog drive download FILE_ID --format pdf --out ./doc.pdf
JSON 格式輸出 任何指令加上 --json

安全建議

  1. 使用專用帳號 — 永遠不要用你的個人主要 Google 帳號
  2. 定期檢查存取 — 用 gog auth list --check 確認 token 狀態
  3. 最小權限原則 — 如果只需要讀取,使用 --readonly
  4. 監控活動 — 定期檢查 Google Drive 活動記錄
  5. Service Account 優先 — 如果可能,使用 Service Account + 資料夾分享的方式最安全
  6. 保護憑證client_secret.json 和 token 檔案要妥善保管,不可上傳到 GitHub 等公開平台

本教學最後更新:2026 年 3 月