google-docs について
Google Docs REST API を curl と jq で操作し、文書の読み取り、作成、編集を行うコマンドラインスキルです。OAuth の権限範囲やインデックス方式の編集に関する注意点も扱います。
主な機能
- 01文書のタイトルと本文の取得
- 02文書の作成
- 03batchUpdate によるテキスト挿入
- 04OAuth 権限と API エラーへの対応
- 05jq によるテキスト抽出
活用シーン
- 01Google ドキュメントの内容取得
- 02議事録の作成
- 03既存文書へのテキスト挿入
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ acedatacloud/ skills --skill google-docsインストール後、Claude Code で/google-docsを入力して読み込まれたか確認します。
詳細
curl + jq を使用して Google Docs を操作します。ユーザーの OAuth ベアラートークンは
$GOOGLE_DOCS_TOKEN に格納されています。各リクエストには Authorization: Bearer $GOOGLE_DOCS_TOKEN が必要です。ベース URL:https://docs.googleapis.com/v1/documents。トークンには
documents.readonly(および ID 情報)が含まれます。書き込みには documents が必要です。
エラーは {"error":{"code","message","status"}} の形式です。そのまま表示してください。401 =
再インストールしてください。書き込み時の 403 PERMISSION_DENIED = 読み取り専用スコープです。
ドキュメント ID は URL の …/document/d/<ID>/edit の部分です。
D="https://docs.googleapis.com/v1/documents"; AUTH="Authorization: Bearer $GOOGLE_DOCS_TOKEN"
# Read the document. The body is a tree of structural elements; pull plain text:
curl -sS -H "$AUTH" "$D/DOC_ID" \
| jq -r '.title, ([.body.content[]?.paragraph?.elements[]?.textRun?.content] | join(""))'
作成と編集
# Create an empty doc
curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \
-d '{"title":"Meeting notes 2026-06-21"}' "$D" | jq '{documentId, title}'
# Insert text at the start (index 1) via batchUpdate (confirm first)
curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \
-d '{"requests":[{"insertText":{"location":{"index":1},"text":"Hello\n"}}]}' \
"$D/DOC_ID:batchUpdate" | jq '.documentId'
# Replace all occurrences of a placeholder
curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \
-d '{"requests":[{"replaceAllText":{"containsText":{"text":"{{name}}","matchCase":true},"replaceText":"Alex"}}]}' \
"$D/DOC_ID:batchUpdate" | jq '.replies'
注意点
- ドキュメントモデルは インデックスベース です。テキスト編集では文字インデックスを指定し、挿入のたびに後続のインデックスがずれます。複数箇所に挿入する場合は、後ろから順に適用するか、呼び出しの間にインデックスを再計算してください。
- Markdown/プレーンテキストをきれいに取得するには、
body.content[].paragraph.elements[] .textRun.contentをたどります(上記の jq)。テーブルやリストの場合は、さらに深くたどる必要があります。 - ドキュメントを作成すると、ユーザーの Drive のルートに保存されます。移動または共有するには、
google-driveスキルを使用してください。
コメント
Markdown 対応