GAS Web アプリが「アクセス権が必要です」で開けない時のデプロイ記録破損の診断と復旧
公開設定は正しいのに所有者でも403になるGAS Webアプリを、Bearer fetchの差分比較で切り分け、同versionのPUT再デプロイでURL不変のまま復旧する
約5.2万トークンの節約 (API料金換算で約78円分)。 要件定義・技術調査・試行錯誤ぶんのトークンがまるごと不要になります。※ 出品者申告とレビューに基づく推定値。モデル・タスク内容により変動します。
この巻物について
「GAS Web アプリが「アクセス権が必要です」で開けない時のデプロイ記録破損の診断と復旧」は、Google WorkspaceカテゴリのAI指示書(MDファイル)です。公開設定は正しいのに所有者でも403になるGAS Webアプリを、Bearer fetchの差分比較で切り分け、同versionのPUT再デプロイでURL不変のまま復旧するこの巻物をAIに読み込ませると、ゼロから設計・調査する場合に比べて 約5.2万トークン(API料金換算で約78円)・87%のトークンを節約できます。
- カテゴリ
- Google Workspace
- 対応AI
- claude-code、cursor、codex-cli
- ライセンス
- 商用利用可 (再販不可)
- 価格
- 無料
- ゼロから開発時
- 約6万トークン
- この巻物使用時
- 約8,000トークン
- 節約量
- 約5.2万トークン (約78円)
- 更新日
- 2026-10-19
使い方 (AIに渡す3つの方法)
いちばん簡単なのはワンライナー。Claude Code のターミナルに貼るだけです。
claude "https://makimono-md.vercel.app/api/v1/files/gas-web-3/raw を読み込んで、この指示書どおりに実装して"
中身
GAS Web アプリが「アクセス権が必要です」で開けない — 公開設定は正しいのにデプロイ記録が壊れている時の診断と復旧
症状
- Apps Script の Web アプリを開くと「アクセスが拒否されました / ドライブ アクセス権が必要です」。
deployments.getのentryPointConfigはaccess: ANYONE(または DOMAIN)で正しい。マニフェストも正しい。- スクリプト自体は動いている(時間主導トリガーなどは正常に走る)。
- 所有者アカウントで開いても同じ 403 になる。
公開設定やログインアカウントの問題に見えるが、利用中デプロイの記録そのものが壊れていることがある(別端末から clasp deploy --deploymentId で更新した直後などに発生)。
診断(ブラウザ不要・差分比較)
clasp のログイン情報(~/.clasprc.json の tokens.default の refresh_token / client_id / client_secret)でアクセストークンを取り直し、Bearer 付きで Web アプリの exec URL を fetch する。
const t = rc.tokens.default;
const tok = await (await fetch('https://oauth2.googleapis.com/token', { method:'POST',
headers:{'content-type':'application/x-www-form-urlencoded'},
body:new URLSearchParams({client_id:t.client_id, client_secret:t.client_secret, refresh_token:t.refresh_token, grant_type:'refresh_token'})})).json();
const res = await fetch(`https://script.google.com/macros/s/<deploymentId>/exec`, { headers:{authorization:'Bearer '+tok.access_token}, redirect:'follow' });
const title = ((await res.text()).match(/<title>([^<]*)<\/title>/)||[])[1];
同じトークンで次の 3 つを比べる。
| 対象 | 期待 |
|---|---|
| (a) 同じアカウントで開ける別の Web アプリ | 200(トークン経路が有効な証拠) |
| (b) 問題のデプロイ | 403、title が「アクセスが拒否されました」 |
(c) 同じ version の一時デプロイ(POST /v1/projects/<scriptId>/deployments)→ fetch → DELETE | 200 ならデプロイ記録の壊れで確定 |
復旧(URL 不変)
所有者トークンで同じ version を既存デプロイに当て直す。
PUT https://script.googleapis.com/v1/projects/<scriptId>/deployments/<deploymentId>
{"deploymentConfig":{"versionNumber":<同じ番号>,"manifestFileName":"appsscript","description":"..."}}
その後 (b) を再 fetch し、200 と画面固有の文字列(アプリの title や要素 id)を read-back して完了とする。一時デプロイは必ず DELETE し、デプロイ一覧が元の件数に戻ったことを確認する。
注意
processes.list(実行ログ)は clasp 既定トークンの scope 不足で読めないことが多い。ログに頼らず差分比較で判定する。- 複数 Google アカウントに同時ログインした端末での「ファイルを開くことができません」(URL に
/u/1が挿入される)は別症状。
よくある質問
+「GAS Web アプリが「アクセス権が必要です」で開けない時のデプロイ記録破損の診断と復旧」とは何ですか?
公開設定は正しいのに所有者でも403になるGAS Webアプリを、Bearer fetchの差分比較で切り分け、同versionのPUT再デプロイでURL不変のまま復旧する
+どれくらいトークン(費用)を節約できますか?
ゼロから開発すると約6万トークンかかりますが、この巻物を使えば約8,000トークンで済みます。差し引き約5.2万トークン(API料金換算で約78円)・87%の節約です。
+どうやって使いますか?
無料です。MDファイルを Claude Code などのAIに読み込ませるだけ。ワンライナーをターミナルに貼れば実装が始まります。要件定義や技術調査を省いて実装だけにトークンを使えます。
+どのAIツールに対応していますか?
claude-code、cursor、codex-cli に対応しています。
+商用利用できますか?
ライセンスは「商用利用可 (再販不可)」です。
🤝 自分でAIを動かすのは、まだ不安…という方へ
この巻物の内容を、AIを使うプロに丸ごと任せることもできます。姉妹サービスAI代行堂なら「LINEで頼むだけで、仕事が完成」。
関連する巻物
GAS完全自動化テンプレ — Driveコマンドキュー方式
Google Apps Script の「毎回エディタで▶実行」を根絶。Drive 経由のコマンドキューで、初回1クリック以降は AI がすべての GAS 関数をリモート実行できるようになるテンプレート指示書。
人間の手入力台帳を壊さずに自動更新する — GAS Web App upsert 設計
各PC/各拠点の点検結果を、人間が手運用しているスプレッドシート台帳へ自動反映する。手入力列とコメントを絶対に壊さない突合設計、タブ/列の解決、並行POST対策、配布シークレットの落とし穴まで。
数式まみれの業務スプレッドシートを、Webアプリから壊さずに編集させる型
ArrayFormula と per-row 数式が混在する台帳を、セル単位 allowlist・dry-run 既定・適用前バックアップ・触っていないセルの数式不変検査で安全に書き換える設計手順。列ごとの数式復元と、テストが緑のまま壊れる典型例つき。
この巻物、誰かのトークンも救えます
𝕏 で節約レシートをシェア