Google Workspace CLI セットアップ記録
インストール済みツール
| ツール | バージョン | 場所 | 用途 |
|---|---|---|---|
| gws | 0.8.0 | npm global (@googleworkspace/cli) | AI連携・構造化出力 |
| gog | v0.11.0 | C:\ai_work\gogcli\gog.exe (PATH追加済み) | 日常操作・スクリプト |
認証情報
| 項目 | 値 |
|---|---|
| アカウント | umebiz5726@gmail.com |
| GCPプロジェクト | gen-lang-client-0383713206 |
| client_secret | C:\Users\umecc\.config\gws\client_secret.json |
| gws credentials | C:\Users\umecc\.config\gws\credentials.enc (AES-256-GCM暗号化) |
| gog credentials | C:\Users\umecc\AppData\Roaming\gogcli\credentials.json |
認証済みスコープ(gws: 11個)
- Drive, Sheets, Gmail, Calendar, Docs, Presentations, Tasks, PubSub, Cloud Platform, UserInfo, OpenID
使用例
# gws: Google Driveファイル一覧
gws drive files list --params '{ "pageSize": 5 }'
# gws: Gmailの未読メール
gws gmail users messages list --params '{ "userId": "me", "q": "is:unread" }'
# gog: カレンダー一覧
gog calendar list
# gog: 未読メール検索
gog gmail search "is:unread"Sheets API 書き込み実装
PowerShellの注意点
WARNING
gwsCLI でJSON内に#記号が含まれると、PowerShellがコメントとして解釈しコマンドが失敗する。 日本語のJSON送信もエスケープ問題が発生しやすい。
推奨方法:Python + google-api-python-client を使用
Python実装パターン
# 1. 初回のみOAuth認証(ブラウザが自動で開く)
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
CLIENT_SECRET = r"C:\Users\umecc\.config\gws\client_secret.json"
TOKEN_FILE = r"C:\Users\umecc\.config\gws\sheets_token.json"
SCOPES = ["https://www.googleapis.com/auth/spreadsheets"]
# 2. トークン取得(2回目以降は自動)
creds = Credentials.from_authorized_user_file(TOKEN_FILE, SCOPES)
if not creds.valid:
creds.refresh(Request())
# 3. スプレッドシート作成
service = build("sheets", "v4", credentials=creds)
result = service.spreadsheets().create(body={
"properties": {"title": "タイトル"}
}).execute()
spreadsheet_id = result["spreadsheetId"]
# 4. データ書き込み
service.spreadsheets().values().update(
spreadsheetId=spreadsheet_id,
range="A1:C3",
valueInputOption="RAW",
body={"values": [["col1", "col2", "col3"], ["a", "b", "c"]]}
).execute()
# 5. データ追記(既存データの下に追加)
service.spreadsheets().values().append(
spreadsheetId=spreadsheet_id,
range="A1:C1",
valueInputOption="RAW",
insertDataOption="INSERT_ROWS",
body={"values": [["new1", "new2", "new3"]]}
).execute()トークン管理
| ファイル | 用途 |
|---|---|
client_secret.json | OAuth クライアント設定(不変) |
credentials.enc | gwsの暗号化クレデンシャル |
sheets_token.json | Python用Sheetsアクセストークン(自動更新) |
依存パッケージ
python -m pip install google-auth google-auth-oauthlib google-api-python-clientgws CLIでの操作(PowerShell)
# スプレッドシート新規作成
gws sheets spreadsheets create --json '{ \"properties\": { \"title\": \"タイトル\" } }'
# Driveファイル一覧
gws drive files list --params '{ \"pageSize\": 5 }'
# gog での操作
gog calendar list
gog gmail search "is:unread"関連リンク
- agent-bus-MCP設計書 — エージェント間通信
- ClawXローカルセットアップ記録 — OpenClawデスクトップ版
- index — YouTubeコンテンツ販売ナレッジ