巻物を探す
39件の巻物
Apps Script ダイアログを本人の Google 承認に依存させない — 「承認が必要です」全滅をWebアプリfetchフォールバックで塞ぐ
bound script のダイアログ内 google.script.run が複数アカウント同時ログインで承認エラーになる構造問題を、文脈のテンプレ埋め込み+開発者権限 Web アプリへの fetch フォールバック(dedup・CORS・外部オリジン Playwright 検証)で解く
GAS Web アプリの画面をブラウザ操作なしで検証する(google.script.run 偽装・差し込み値置換・Sheets API 無効でも gviz で実データ)
ログイン必須の Apps Script Web アプリでも、index.html を Chromium で実描画して DOM を assert できる。偽 google.script.run は head に埋め込む(addInitScript は setContent で走らない)、サーバー差し込み値の置換、file:// が要る条件、Sheets API 無効時に OAuth トークンだけでタブ別 CSV を読む URL、書き込みはコマンドキューで read-back。
GAS完全自動化テンプレ — Driveコマンドキュー方式
Google Apps Script の「毎回エディタで▶実行」を根絶。Drive 経由のコマンドキューで、初回1クリック以降は AI がすべての GAS 関数をリモート実行できるようになるテンプレート指示書。
GASウェブアプリが「読み込み中」で止まる・遅い — google.script.run の null 化と getValues 往復を計測で潰す
戻り値に Date が混ざると google.script.run が全体を null にする問題を JSON 文字列化で解消し、シート1枚ずつの getValues(1枚0.3〜1秒)を Sheets API batchGet に置き換えて約5秒→1秒にする。切り替え前に本番データで新旧を突き合わせ、日時シリアルの1ms誤差を丸める手順つき
シートに打合せ日時を書くだけでカレンダー予定+Meet発行+前日リマインドGmail下書き(Apps Script)
案件シートの日時列を15分巡回し、Calendar API v3でMeet付き予定を作成、前日9時以降に顧客宛リマインドを下書きで1回だけ作る。招待メール抑止・冪等キー・日時変更追従つき
複数の AI セッションが同じ Apps Script に clasp push しても互いの反映を消さない
clasp push は全置換なので、古いスナップショットからの push は他人が足したファイルを黙って消す。pull→上書き→push の連続化、別ディレクトリでの read-back、消された側が並行相手の staging に同乗させる復旧手順。
google.script.run の null が undefined になる罠 — 本番だけ出る NaN 表示の自動検出
GASウェブアプリでサーバ側の null がブラウザで undefined になり、=== null の分岐が素通りして NaN が表示される。単体テストでもJSON fixtureでも再現しない理由と、null を落とした fixture で描き直して自動検出する方法。
共有作業ツリーから本番Apps Scriptを巻き戻さず部分pushする
本番をclasp pull→変更ファイルだけ重ね→差分表示→push→read-back検証→デプロイを1コマンドで行い、他人の新しい本番コードの巻き戻しとエージェントのBlind Apply拒否を防ぐ
「共有した雛形に書き込めない」問い合わせを消す — Googleフォーム→本人専用ドキュメント自動発行(GAS)
雛形リンク配布をやめ、フォーム入力から本人専用のGoogleドキュメントをGASで自動発行・共有する。原本は閲覧のみのまま、権限リクエストと問い合わせをゼロにする手順とWorkspace固有の罠
Googleユーザーデータを認証なしローカルアプリに出す — GAS→公開HTTPS橋渡し
自作ダッシュにGoogleタスク/カレンダー等を、アプリにOAuthを持たせずGAS→公開HTTPS ingestへPOST→ローカルキャッシュ→Widgetで表示。Web App公開/clasp run/SA不要。funnel実ポート確認・秘密の置き場・basePath・本番再ビルド等の実測ハマりどころ付き
GAS 開発の絶対ルール(clasp統一・キュー・read-back)
.gs/appsscript.json/.clasp.json を編集すると自動適用される GAS 開発ルール集。clasp push 統一、コマンドキュー方式、書き込み後の read-back verify、silent ignore 対策、push 後もトリガーが旧コードで動く罠までを規定。
大きいGoogleスプレッドシートをAIに全件読ませる(自然言語の書き出しは黙って切られる)
行数の多いシートはコネクタの自然言語書き出しだと途中で切れ、AIは成功と報告する。xlsxをbase64で取りZIPとして自力で開いて全件取り込む手順と、部分一致の誤ヒットを止めるガードまで。
Google Sheets API 2大落とし穴(append列ズレ/QUERY ORDER BY silent fail)
フィルタ有効シートへのvalues.append()が列ズレする罠と、QUERY()のORDER BYが型混在列で全行silent失敗する罠、それぞれの回避策
GAS Webアプリ バーコードラベル印刷(iOS AirPrint対応)
Google Apps ScriptのWebアプリからBrother等のラベルプリンタへ印刷する際、iOS AirPrintが連続ロールのカット長を無視する問題をjsPDF生成で回避する実装パターン
GAS Webアプリの同時アクセスクォータエラー対策
複数人利用のGoogle Apps ScriptアプリでSpreadsheetApp.openByIdが同時呼び出しエラーになる問題を、リトライ+バックオフ+ジッターのラッパー関数で解消する手順
スプレッドシートとGAS Web Appを画面操作ゼロで作成・公開し、外部アプリからHTTPで1行upsertする
clasp のトークンだけで、スプレッドシート作成→バインドされた Apps Script 作成→コード投入→Web App 公開まで REST で完結させる手順。DBを契約せず0円で「フォーム入力→通知→表に蓄積→月次集計」を実現する。人手は実行権限の承認1回だけ。未承認とポリシー禁止の切り分け、シート作成直後の未フラッシュで初回だけ壊れる罠、CSVエクスポートがread-backに使えない罠、再デプロイでURLとシークレットを変えない状態ファイル設計、後片付けまで含む検証スクリプトの型を実測ベースで収録。
GAS ウェブアプリが突然開けない — ブラウザ用ライブラリ混入と clasp の盲点を API 版比較と読み込みテストで潰す
直前デプロイで混入した minified ライブラリが Apps Script 起動時に例外を投げ全画面が死ぬ事故の診断・修正・再発防止。版番号指定の API 比較、GAS 相当グローバルでの読み込みテスト、clasp がリモート専用ファイルを消さない対処まで。
稼働中の既存GASを、副作用を起こさずに検証してから本番反映する
定期実行中のApps Scriptに仕様変更を入れる手順。メール送信などの副作用を起こさずに実データでロジックを検証し、clasp push後にpullで突合するまでを機械判定で閉じる。clasp loginの認可URLが死ぬ罠、pullの拡張子違いで差分ゼロを誤認する罠つき。
コンテナバインド型GASスクリプトを発見しDiscord Webhookメンションを安全にテストする
Drive検索/clasp listに出ないバインド型スクリプトをscriptIdから発見し、@here/@everyoneメンション変更を実チャンネルを汚さず検証する手順
定期バッチの「全面書き戻し」が新規行を消す事故を、検知・修正・復旧する
スプレッドシートの定期更新バッチが開始時スナップショットを全面setValuesで書き戻すと、その間に挿入された行が無痕跡で消える。間欠的でエラーも出ないこの事故について、真因の確定、競合検知による修正、消えた分の洗い出しと復旧までを一続きで行う手順。洗い出しで必ず踏む偽陽性4類型と、二重照合・dry-run・read-backの型つき。
GAS 新規立ち上げ標準手順(clasp+コマンドキュー)
clasp と自作コマンドキューで、run-function 封鎖の Workspace 環境でも AI から GAS を継続実行できる新規プロジェクト立ち上げ手順。人間の作業は setupOnce の1クリックのみ。ホワイトリスト実行・並走防止・機密値の置き場も規定。
スプレッドシート業務アプリに画面キャプチャ付き不具合報告フォームを付ける(GAS)
GASのOverGridImageにgetBlob()が無くシート貼付画像は読めない。HTMLダイアログでCtrl+Vを受ける正しい設計・記録列マイグレーション・read-back検証・画像を捨てない後片付けまでの実装指示書
GASの夜間バッチを必ず完走させる設計(6分制限・再開・作り置き)
実行時間上限のある環境で長時間バッチが永久に完走しない3つの原因(リスト後方の飢餓・入力1件の変更で全チャンク破棄・自分の生成物を再入力)と、台帳による優先順/チャンク単位フィンガープリント/生成物除外での直し方。部分確定と失敗カウンタ期限切れ、検証手順つき。
スプレッドシート実行パネルの結果セルを必ずクリック可能にする(GAS)
GASでシートを操作パネルにした時、生成物リンクがセルに出ず別シートを探させてしまう問題の潰し方。URLキーの総なめ収集・RichTextで複数リンク・過去分の埋め戻し・再構築で消える罠・全走査で6分制限に当たってトリガが死ぬ罠まで。
本番スプレッドシートの既存セルへ一括書き込みする前に、現況を全件実測して上書き規則を決める型(GAS)
「登録したらこのセルに自動で値を入れて」は、そのセルが空である前提で降ってくる。実際は見出しやマニュアルリンクが入っており、setValue を流すと全レコード分を一撃で潰す。判定を純関数に切り出して dryRun で全件の現況をダンプし、実測結果を依頼者に見せて上書き規則を確定してから書く手順。read-back verify、6分上限の offset/limit 分割、付帯機能の非致命化、Calendar Advanced Service での会議URL発行とスコープ追加時の実測挙動まで。
「Driveからファイルを名前で探して画面に貼る」機能が実データで1件も当たらないのを潰す
台帳依存・探索の深さ不足・MIME絞りすぎの3つの落ち方を特定し、親フォルダ走査がドライブのルートを掴む誤検出と、途中で落ちて画面が空になる事故まで塞ぐ。副作用ゼロの診断関数で実データ検証する。
本番スプレッドシートに「新しいレコードの列ブロック」を安全に増やす型(GAS)
横並び1レコード=N列のシートに、既存ブロックの複製で新しい列ブロックを自動追加する型。数式の相対参照追従・IMPORTRANGEの絶対URL差し替え・日付セルのread-back照合の罠・本番検証用の撤去コマンドまで。
GAS Web アプリが「アクセス権が必要です」で開けない時のデプロイ記録破損の診断と復旧
公開設定は正しいのに所有者でも403になるGAS Webアプリを、Bearer fetchの差分比較で切り分け、同versionのPUT再デプロイでURL不変のまま復旧する
GASで商品ページのURLから品名・説明・画像・価格を抜いて登録フォームを自動入力する(文字コード自動判定つき)
JSON-LD→OGP→title の3段抽出、ヘッダー/metaを信じず化け文字最少で復号(楽天EUC-JP実測)、画像はDriveに保存。Node/Playwright/実環境の検証手順と落とし穴つき
GASアプリ群への不具合報告フォーム横展開 — 各アプリを匿名公開せず共通フォーム1本へリンクする
機微データを持つ・スコープを触れない・画面が無い、で止まる横展開を、フォームをパラメータ化して共通1本に集約する方式で全部さばく。器の選び方で人間のクリックを0回にする方法と、文字化け・公開範囲の検証3点まで。
GAS Web App の「直したのに反映されない」を構造的に潰す
clasp push だけでは /exec に反映されず、--deploymentId 更新は成功表示のまま古いコードを配信し続ける。push→新規デプロイ→認証URL差し替え→疎通確認を1本化する型(PowerShell 5.1 の落とし穴込み)
スプレッドシートのシート追加ボタンが copyTo null で落ちる原因をデータだけで特定する
GASボタンの Cannot read properties of null (reading 'copyTo') は、シート名一覧と実シート名のズレ。Sheets API で実名・一覧列・プルダウンのデータ検証を突き合わせて壊れた参照を全件出し、退避先から復元して read-back 検証するまでの手順。末尾スペース事故とバインド型スクリプトに到達できない制約も含む。
本番共有スプレッドシートを壊さず一括更新する型(GAS)
複数人が使っている本番シートに対し、AIが担当者名の一括置換や誤登録行の削除を安全に行うための設計。dryRun→照合キー付き適用→独立read-backの3段と、GASのコード雛形・実際に踏んだ落とし穴つき。
GASの通知Botメンバーリストをスプレッドシート化する
Discord/Slack等への定期通知GASでハードコードされた宛先リストをスプレッドシート読込に置き換え、以後はコード編集不要にする。Drive全文検索がGAS編集直後は反映されない落とし穴も併記。
人間の手入力台帳を壊さずに自動更新する — GAS Web App upsert 設計
各PC/各拠点の点検結果を、人間が手運用しているスプレッドシート台帳へ自動反映する。手入力列とコメントを絶対に壊さない突合設計、タブ/列の解決、並行POST対策、配布シークレットの落とし穴まで。
GAS+スプレッドシートで数値・日付が静かに壊れる3つの罠と回避策
セルの表示形式とタイムゾーンに起因して、例外も出さずにデータが壊れる3パターン(TZ不一致/文字列の日付自動変換/列拡張時の書式引き継ぎ)の回避策と修復手順。単体テストでは検出できない層のバグを早期発見するための3原則つき。
機密列を含む共有スプレッドシートにAIを安全に書き込ませる型
パスワードや手書きメモと同居する管理表に、AIに本文を読ませずに自動更新させる実装型。許可リスト書込・見出し行の自動検出・行を奪わない突合・列順シャッフルの敵対的テスト・定期実行の引数固定まで。
GASの時間主導トリガーがデプロイ版に固定される罠 — 「成功したのに何も起きない」の切り分け
clasp push しても時間主導トリガーは旧バージョンのコードを実行し続ける。エラーも出ず戻り値もOKなため原因が特定できない。新関数プローブで実行中のコードを確定させ、clasp deploy -i でURLを変えずに直す手順。
GASデプロイ上限20エラーでもpushは反映済み — トリガーはHEADで動く
clasp deploy が20件上限で失敗しても push は通っており、時間トリガーは HEAD を使うので反映済み。/exec だけ旧版。判定と古いデプロイの整理手順