目次
- GASって?
- 簡単な自動化
- 共通関数を作る
- claspを使う
- 自己満
- 参考
こいつは誰?
- 田渕 啓夢
- ユーソナー(株) モバイル開発チーム
- 3年目になってた。。。
- 業務
- API開発、デスクトップアプリ開発、リリース管理、etc…
- 趣味
- アイマスのオタク(最近U149を見てCD大人買いした)
- ゲームとか家事して寝るだけの生活してる
- 出会い系アプリは卒業しました
GASって?
- シンプルなコードで Google Workspace を自動化および拡張します。
- Googleのドキュメントやスライド、スプレッドシート等のアプリに独自の処理を作成することができる
- JavaScriptでコードを作成できる
- Googleアプリ版VBAみたいなイメージ
- このスライドにも簡単なものを仕込みました。
簡単な自動化
- なんとなく雰囲気を感じてもらえそうなものを用意しました。
- (すみません。動かすまで作れませんでした)
- 修正履歴をいい感じに残すスクリプト
- JavaScriptを書く気持ちでスプシの情報管理や整理、作成ができる。
- 定期的に実行するもの、ルーティン作業等の自動化におすすめです。
共通関数を作る
- 関数を別ファイルにまとめ、別スクリプトから呼び出すことが可能
- 複数の場所で使用したいロジックをここに作成し、各アプリから呼び出す
- (べた書きするより実行速度が遅くなってしまうらしい)
-とはいえ.. - GASの画面で直接スクリプト編集するのめんどくね? -
誰でも修正できるから壊れやすいじゃん -
JavaScriptだし、もうちょっと厳密に型で縛れない…?
claspを使う
- clasp is 何?
- Google製CLI GAS開発ツール
- https://github.com/google/clasp
- claspを使うと嬉しいこと
- ローカルPCでGAS開発ができるようになる
- コードのGit管理が容易にできる
- Nodeで使用できるため、ほかのjs資産を使用できる
- TypeScriptが使える
自己満
- GAS開発の辛いところ
- GASのAPIがわからん
- 実行時に一つのファイルにバンドル?されて実行される
- 別ファイルに分割しても同名関数があれば後勝ちになる(GASの実行環境で読みだされる順)
- tsからjsにコンパイルされるが、一部使えない構文などをしようするとすぐエラーを出してくる
- claspのおかげでpush時にエラーを出してくれたり、該当箇所をコメントアウトしてくれたりはする
- 前述の辛みを一部解決するテンプレートリポジトリを作成したのでぜひ使ってください。
- https://github.com/himihiromu/clasp-gas-template
- GAS開発の辛いところ
- GASのAPIがわからん
- @types/google-apps-scriptを使えば型情報を元に補完してくれる
- 一部使えない構文などを使用するとすぐエラーを出してくる
- webpackやrollupのGASプラグインを使用すれば体感半分ぐらい解決する。
- 実行時に一つのファイルに結合されて実行される
- 上記バンドルファイルを使って手元で1ファイルにしちゃえば解決する
参考
- GAS公式
- https://workspace.google.co.jp/intl/ja/products/apps-script/
- GASドキュメント
- https://developers.google.com/apps-script?hl=ja
- claspリポジトリ
- https://github.com/google/clasp
- 私の自己満足リポジトリ
- https://github.com/himihiromu/clasp-gas-template