OpenClaw 連接 Google Drive 特定資料夾完整教學
讓你的 OpenClaw AI 助手能上傳、修改、管理 Google Drive 中指定資料夾的所有檔案
目錄
- 前置準備
- 建立 Google Cloud 專案與啟用 API
- 設定 OAuth 同意畫面
- 建立 OAuth 2.0 憑證
- 安裝 gogcli(gog)
- 認證 Google 帳號
- 取得目標資料夾 ID
- 測試 Google Drive 存取
- 連接到 OpenClaw
- 限制存取範圍到特定資料夾(安全做法)
- Claude Code 自動化指令
1. 前置準備
在開始之前,請確認你具備以下條件:
- 一台 Mac、Linux 電腦或 VPS 伺服器(建議 24 小時運行)
- 一個 專用的 Google 帳號(強烈建議不要使用個人主帳號,以防安全風險)
- 已安裝 OpenClaw 並可正常運行
- 安裝好 Git、Go 語言環境(或 Homebrew for Mac)
- 一個可以查詢問題的 LLM(例如 Claude)在另一個分頁待命
重要安全提醒: 授予 OpenClaw 存取你的 Google 服務具有固有的安全風險。如果你的伺服器遭到入侵,惡意人士可能獲得你的 Google Drive 存取權限。請務必使用專用帳號。
2. 建立 Google Cloud 專案與啟用 API
步驟:
- 前往 Google Cloud Console
- 點擊頂部的「選擇專案」→「新建專案」
- 專案名稱輸入:
OpenClaw Drive Integration(或你喜歡的名稱) - 點擊「建立」
- 建立完成後,切換到該專案
- 點擊左上角漢堡選單 ☰ →「API 和服務」→「已啟用的 API 和服務」
- 點擊上方「+ 啟用 API 和服務」
- 搜尋並啟用以下 API:
- Google Drive API — 搜尋 “Google Drive API”,點擊並啟用
如果你之後還想用 Gmail、日曆等功能,也可以一併啟用 Gmail API 和 Google Calendar API。
3. 設定 OAuth 同意畫面
- 在左側選單點擊「API 和服務」→「OAuth 同意畫面」
- 選擇使用者類型:
- 如果是 Google Workspace 帳號,選「內部」
- 如果是一般 Gmail 帳號,選「外部」
- 填寫應用程式名稱(例如
OpenClaw Bot) - 填寫你的電子郵件作為支援聯絡信箱
- 在「範圍(Scopes)」頁面,新增以下範圍:
https://www.googleapis.com/auth/drive
這會授予 Google Drive 的完整讀寫權限。雖然 Google 也提供
drive.file範圍(僅限應用程式自己建立或開啟的檔案),但若你需要存取已有的資料夾和檔案,必須使用完整的drive範圍。
- 如果你選了「外部」,在「測試使用者」頁面加入你的專用 Google 帳號的 Email
- 儲存並繼續
4. 建立 OAuth 2.0 憑證
- 前往「API 和服務」→「憑證」
- 點擊上方「+ 建立憑證」→「OAuth 用戶端 ID」
- 應用程式類型選「桌面應用程式」
- 名稱填入:
OpenClaw Desktop Client - 點擊「建立」
- 彈出視窗會顯示你的 Client ID 和 Client Secret
- 點擊「下載 JSON」,儲存為
client_secret.json
請妥善保管此檔案,它包含你的 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
如果你也需要 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:從瀏覽器取得
- 在瀏覽器開啟 Google Drive
- 進入你要授權的資料夾
- 從網址列複製 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
記下你的資料夾 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 已連接成功!![]()
9. 連接到 OpenClaw
設定環境變數
編輯 OpenClaw 的環境設定檔:
nano ~/.openclaw/.env
加入你在 gog auth add 步驟中設定的密碼:
GOG_PASSPHRASE=your_passphrase_here
GOG_ACCOUNT=your-bot@gmail.com
請確保 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 + 資料夾分享
這是最安全的做法:
- 在 Google Cloud Console 建立一個 Service Account
- 下載 Service Account 的 JSON 金鑰
- 把你想讓 OpenClaw 存取的資料夾分享給 Service Account 的 Email
- 設定 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 |
安全建議
- 使用專用帳號 — 永遠不要用你的個人主要 Google 帳號
- 定期檢查存取 — 用
gog auth list --check確認 token 狀態 - 最小權限原則 — 如果只需要讀取,使用
--readonly - 監控活動 — 定期檢查 Google Drive 活動記錄
- Service Account 優先 — 如果可能,使用 Service Account + 資料夾分享的方式最安全
- 保護憑證 —
client_secret.json和 token 檔案要妥善保管,不可上傳到 GitHub 等公開平台
本教學最後更新:2026 年 3 月