google-workspace について
google-workspace は、Gmail、Drive、Calendar、Docs、Sheets などを API 経由で操作するスキルです。メールアドレスごとにアカウントを管理し、API 呼び出しごとに明示的な指定が必要です。
主な機能
- 01JavaScriptでWorkspace APIを実行
- 02OAuthログインとアカウント管理
- 03メールアドレスで呼び出し先を選択
- 04スコープと実行タイムアウトを設定
活用シーン
- 01指定アカウントのDriveファイル一覧を取得
- 02特定プロフィールでGmailを検索
- 03複数サービスのWorkspace APIを呼び出す
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mitsuhiko/ agent-stuff --skill google-workspaceインストール後、Claude Code で/google-workspaceを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
package-lock.jsonpackage.jsonscripts/auth.jscommon.jsworkspace.js詳細
Google Workspace
Google Workspace のタスク(Gmail、Drive、Calendar、Docs、Sheets など)には、このスキルを使用してください。
ファイル
scripts/auth.js— OAuth のログイン/状態確認/クリア + アカウント一覧の取得scripts/workspace.js— JavaScript の実行に基づく API ランナー
アカウントモデル(マルチアカウント)
このスキルはメールアドレスベースのプロフィール方式です。
- デフォルトのアカウントはありません。
- API 呼び出しでは、必ず
--email <[email protected]>を指定してください。 - トークンはメールアドレスごとに
~/.pi/google-workspace/tokens/の下に保存されます。
API 呼び出しを実行する前に、ログイン済みのアカウントを確認してください。
node scripts/auth.js accounts
使い方
必ず exec を使用し、必ず --email を指定してください。
node scripts/workspace.js exec --email [email protected] <<'JS'
const me = await workspace.whoAmI();
const files = await workspace.call('drive', 'files.list', {
pageSize: 5,
fields: 'files(id,name,mimeType)',
});
return { me, files: files.files };
JS
exec スクリプト内で使用できます。
auth(認証済み OAuth クライアント)google(googleapisのルート)workspace.accountEmail(選択したプロフィールのメールアドレス)workspace.call(service, methodPath, params, {version})workspace.service(service, {version})workspace.whoAmI()
省略可能なフラグ:
--timeout <ms>(デフォルト 30000、最大 300000)--scopes s1,s2--script 'return 42'
エージェント向けガイダンス
- ユーザーのリクエストごとに
execスクリプトを 1 つ使用することを優先してください。 - ペイロードは小さく保ってください(
fields、maxResults、必要最小限のプロパティ)。 - 独立したリクエストには
Promise.allを使用してください。 - トークンの内容を出力しないでください。
- ユーザーがアカウントを指定していない場合は、
node scripts/auth.js accountsを実行し、明示的なメールアドレスを選択または確認してください。 - 認証に失敗した場合は、まず
node scripts/auth.js accountsを実行して、既知のプロフィールを確認してください。 - アカウントの不一致が考えられる場合は、選択したプロフィールで
workspace.whoAmI()を実行してください。 - 401/403/認証エラーが発生した場合は、アカウントを切り替える(
--email ...)か、そのプロフィールに再ログインしてください。
認証エラー/アカウント切り替え手順
リクエストが認証エラー、アクセス禁止、権限不足で失敗した場合:
- プロフィールを一覧表示します。
node scripts/auth.js accounts
- 対象のアカウントで再試行します。
node scripts/workspace.js exec --email [email protected] <<'JS'
return await workspace.whoAmI();
JS
- トークンの期限切れ、またはスコープ不足の場合は、そのアカウントに再ログインします。
node scripts/auth.js login --email [email protected]
- 同じ
--emailを指定して、元のリクエストを再試行します。
Gmail の件数を数える簡単な例
node scripts/workspace.js exec --email [email protected] <<'JS'
const gmail = google.gmail({ version: 'v1', auth });
let trash = 0;
let pageToken;
do {
const res = await gmail.users.messages.list({
userId: 'me',
q: 'in:trash',
maxResults: 500,
pageToken,
fields: 'messages/id,nextPageToken',
});
trash += (res.data.messages || []).length;
pageToken = res.data.nextPageToken;
} while (pageToken);
return { currentlyInTrash: trash };
JS
セットアップ + 認証
node scripts/auth.js login --email [email protected]
補足:
- 依存関係は初回実行時に自動でインストールされます。
- デフォルトの認証モードはcloudです(ローカルの
credentials.jsonは不要です)。 - ローカルモードも使用できます。
GOOGLE_WORKSPACE_AUTH_MODE=localを設定し、認証情報を~/.pi/google-workspace/credentials.jsonに配置してください。 - 便利な診断コマンド:
node scripts/auth.js accounts
node scripts/auth.js status --email [email protected]
node scripts/auth.js clear --email [email protected]
コメント
Markdown 対応