本CLIを利用するためには、下記が必要です。必要に応じてインストールしておいてください。インストールして使ってみましょう。してキーを発行します。詳しくはnode-google-apps-scirptのGitHubを見ていただければと思います。https://github.com/danthareja/node-google-apps-script#11-default-apps-script-developer-console-project無事に発行ができたら、キー情報が含まれたJSONを落としてください。あとは、インストールしたてのgappsコマンドを用い、認証をします。https://accounts.google...などと表示されるはずなので、URLを踏んで認証してください。Drive!と、表示されるはずです。authで行った認証の情報については、ホームディレクトリ以下の.gappsに保存されます。認証を無事に終えたら、gappsコマンドで管理するGASのファイルを指定します。ブラウザ上のエディタでスクリプトを保存してください。コピーして、下記のコマンドに貼り付けてから、実行してください。jiofe3g4jHfr5dekD5deNIO9e...いかがでしょう。ローカルに下記のGASのファイル達が落とされたと思います。コード.jsあとは、よしなにファイルを編集して、下記のコマンドを実行すると、ブラウザ上のGASも更新されているかと思います。uploadまた、gappsコマンドを使うとき、下記のことを知っておくと良いかもしれません...!GASにアップロードされるファイルは、jsファイル、htmlファイルのみです。jsファイルは、アップロードのタイミングで、gsファイルに自動で変換されます。リモートからローカルにファイルをダウンロードできるのは、この時だけです。した後に、ブラウザのエディタでコードを編集しても、ローカルには落としてこれません。ローカルに落とせたということは...GASのファイル郡をローカルに落とせるようになったということは、下記のことが可能になりました。GitHubによるバージョン管理が可能になりました。テストも書くことが出来るようになりました。アップロードというフローでの作業が可能になり、Googleへのアップロードを自動で行うこともできるようになります。ここからは、応用編として上記3つの方法の実施についてもご紹介します。GitHubにRepositoryを作成し、リモートを追加します。git@github.com:ユーザー名/プロジェクト名.git次に、Gitの初期化を行い、管理対象のファイルをコミットします。masterいかがでしょう。GitHubのリポジトリページを覗いてみてください。GASのファイル達がお待ちです。先述のGoogleのブログにもあるように、スクリプトをローカルに落とせれば、機能テストを書くことも可能です。今回は、テストフレームワークにmocha、アサーションライブラリにchaiを導入してテストを書いてみます。chai次に、テスト用のjsを置くディレクトリを作ります。testあとは、テストを書いてあげてください。Gasifyはjs2gsのBrowserifyプラグインとなります。テスト元のJSというディレクトリ構成を作り、コードの実態をdevディレクトリ以下に書き、テストをtestディレクトリ以下に記述していきます。下記のようにhelloメソッドに対するテストを書きます。});});そして、実態を用意します。Logger.log(hello('yamamoto'));}さて、ここでテストを実行してみます。(7ms)無事にテストが通りました!そして、browserifyにsrc/main.jsを出力させアップロードし、GASとして使えることも確認します。yamamotoと表示されていますね。これで、helloメソッドの機能テストがかけるようになりました!良かった。Gulp連携さて、ES2015で盛り上がる昨今、GASもES2015で書きたいと思うエンジニアの方も多いはずです。普段からRubyやJavaを書いているサーバサイドエンジニアにとっても、Javascriptを書く障壁が低くなること、間違いないです。ES5変換する手法を取り入れます。Gulpのインストールからです。install...するのがめんどくさいので、今回はこちらでインストール時に発行されたpackage.jsonを使います。initしたディレクトリに下記のJSONを保存します。gasifyプラグインを適用)という流れで、GASへのアップロードを行うファイルを生成します。babel6系を使用する最新のbabelifyを使い、トランスパイルするとGASのアップロードする際に、失敗してしまうことがあります。今回はbabel5系を使用するbabelify5.0.5を採用しています。同一階層上でインストールを実行します。installさて、あとでES2015を記述するディレクトリと、ES5をしまうディレクトリを作成します。uploadも同じタイミングで実行してもらいます。uploadは、srcディレクトリのみをアップロードしようとするため、GASへ出力するJSの吐き出し先はsrcとします。今回は下記のようなディレクトリ構成で実行していきます。テスト元のJS下記のファイルをリポジトリルートに置いてください。'gas-upload']))また、hello.jsも、下記の通りES2015ライクな書き方にし、それに合わせてtestも修正します。})})それでは最後に、gulpを走らせてみましょう。watchgulpを走らせているときに、dev_es2015の中身に変更があれば自動でテスト/browserify/babelifyを実施。自動でGoogleにコードを送るようになりました。このgulpfileでは、下記を走らせています。uploadを実行これにて、めでたく、GASをES2015で記述できるようになりました。まとめいかがでしたでしょうか。Driveの連携が非常に簡単に行えることに加え、GASをより便利にするようなライブラリもGoogleが幾つか提供してくれています。(例えば、OAuth2認証を行うこちらなど)また、Slack連携も簡単に行えるので、普段からDriveを利用しているかたなど、ちょっとした効率化を行う際の何かの参考になれば良いと願っております。...2018-02-06営業マンがGoogleカレンダーを読み込んで、メールを自動作成するスクリプト書いてみたいつもお世話になっております。株式会社Speeeの上條です。