Skip to content

Google Apps Script を複数のドキュメントに一斉に仕込むためのスクリプト

License

Notifications You must be signed in to change notification settings

kuinaein/gas-deploy

Repository files navigation

Google Apps Script を複数のドキュメントに一斉に仕込むためのスクリプト

前提

下記のようなフォルダ構造になっていることを前提としています。当てはまらない場合はCode.gscollectTargetDocuments()を適当に書き換えてください。

  • 親フォルダ
    • 子フォルダ 1
      • スクリプトを仕込みたいドキュメント
      • 古いドキュメント
      • それ以外のドキュメント
    • 子フォルダ 2
      • スクリプトを仕込みたいドキュメント
      • ...
    • 管理対象外フォルダ

使い方

  1. Code.gsappsscript.jsonをこのフォルダ内にあるものと置き換える
    • スクリプトエディタでは「表示>マニフェストファイルを表示」が有効になっていないと表示されないので注意
  2. ファイル名の頭にdist/を付けて仕込みたいスクリプトを書く
  3. dist/appsscript.json.htmlは必ず入れる必要がある。依存ライブラリ等ない場合はdist/appsscript.json.htmlの通りで良いはず
    • Apps Script の仕様で拡張子*.jsonは基本的に作成できないので HTML として置いておく
  4. Code.gsに所要の設定を書き込む
  5. メニューの「リソース> Google の拡張サービス」から Google API コンソールを開く
  6. 「Google Drive API」と「Apps Script API」を有効にする
  7. Code.gsdeploy()を蹴る

clasp を使う場合

  1. dist/以下に仕込みたいスクリプトを入れる
    • Apps Script と clasp の仕様で*.gs*.htmlとルート直下のappsscript.jsonしかアップロードできない
    • *.jsも一応アップロードは可能だが、*.gsへとアップロード時にリネームされる
    • *.jsも Apps Script として正しいものでないとバリデーションエラーになり、アップロードに失敗する
    • 他のファイルは*.htmlにリネームする必要がある
    • dist/appsscript.jsondist/appsscript.json.htmlにリネームする必要がある。そのままだとアップロードできないので
      • このファイルは必須
  2. .env.example.envにコピーする
  3. .envを編集する
  4. yarn deploy:push (あるいはnpm run deploy:push) を叩く
  5. ブラウザにスクリプトエディタが表示されるので、所要の設定を書き込む
  6. メニューの「リソース> Google の拡張サービス」から Google API コンソールを開く
  7. 「Google Drive API」と「Apps Script API」を有効にする
  8. Code.gsdeploy()を蹴る

その他注意事項

  • .gitignore.clasp.jsonをバージョン管理対象から外しています
  • Error 400: invalid_scope · Issue #303 · google/clasp
    • 2018-09-02 現在、clasp のソースを少しいじらないとログインに失敗する模様
    • sed -i 's!^.*https://www.googleapis.com/auth/logging.read!// \0!' node_modules/@google/clasp/src/auth.js

ライセンス

パブリックドメイン、CC0 と Unlicense のトリプルライセンスとします。

About

Google Apps Script を複数のドキュメントに一斉に仕込むためのスクリプト

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published