GAS(Google Apps Script)について初めて聞いたのは、現在の会社でインターンシップに入ったときでした。先輩が会社内で使用されている小さなツールの開発を引き継ぐように頼まれました。そのツールは GAS で作られていました。Google 本家に依存しており、Google のさまざまなツールとシームレスに統合されており、公開 API も非常に包括的で使いやすいです(もちろん、他の言語でも Google の API を呼び出すことはできますが、GAS はシームレスに統合されているため、最も良い体験が得られます)。印象的なのは、Google Spreadsheet と Google Calendar へのサポートです。私は空き時間に、研究室のスプレッドシートにあるスケジュールを GAS を使って自動的にカレンダーにインポートする機能を作りました。基本的には公式の API を使ってコードを書くだけで、非常にスムーズで感動的な体験でした。もし普段、さまざまな奇妙なドキュメントに悩まされている場合は、ぜひ GAS を試してみてください。スクリプト言語(またはプラットフォーム)として、複雑な側面もありますが、単に Google のサービスを自動化して連携させたい場合、初めて触れた時点で非常に素晴らしい体験を提供してくれます。
ローカライゼーションとバージョン管理について#
GAS はクラウドベースのエディタを提供しており、簡単なバージョン管理もサポートしています。しかし、Git と Github に慣れている人にとっては、ローカライズがより良い選択肢かもしれません。Google の開発者たちは、このために素晴らしいオープンソースツールを提供しています:Clasp
Clasp のインストール#
Clasp はパッケージとして提供されており、ローカルに npm がインストールされている場合は次のコマンドを実行するだけです:
npm install -g @google/clasp
npm がローカルにインストールされていない場合は、インストールすることをお勧めします。ここから Node.js のダウンロードページに移動できます。彼らはさまざまなプラットフォームをサポートしていますが、最新バージョンを盲目的に追い求めることは避けるべきです(赤い警告が表示されるのは嫌ですよね)。
準備が整ったら、次のコマンドを実行して Google アカウントにログインします:
clasp login
これにより、デフォルトのローカルブラウザが開き、Google アカウントにログインするように求められます。アプリやスクリプトをデプロイするために使用するアカウントにログインする必要があります。
もちろん、信頼できない環境にいる場合は、離れるたびにログアウトすることもできます。次のコマンドを実行するだけです:
clasp logout
準備が整ったので、Clasp を使用してプロジェクトをローカルにデプロイできます。
プロジェクトのローカルデプロイ#
Clasp を使用すると、簡単に新しいプロジェクトをローカルで作成できます:
clasp create
これにより、現在の作業ディレクトリにデフォルトの新しいプロジェクトが作成されます。もちろん、より多くのオプションも提供されており、--title "My Script"
を使用してプロジェクトの名前を指定したり、--type
を使用してプロジェクトのタイプを指定したりすることもできます。もちろん、--rootDir
オプションを使用して新しいプロジェクトの保存場所を指定することもできます。また、G 家のサービスに関連するオプションである--parentId "1D_Gxyv*****************************NXO7o"
もあります。これにより、プロジェクトを特定のサービス(たとえば、Google SpreadSheet)にバインドすることができます。ちなみに、ここでの ID は、対応するサービスの URL から見つけることができます:docs.google.com/presentation/d/{id}/edit
もちろん、より一般的な場合は、既存のサービスに対してプロジェクトを作成することが多いです。その場合、clasp clone
コマンドが便利です。対応するサービスの URL を使用して、スクリプトプロジェクトを直接ローカルに複製できます:
clasp clone "https://script.google.com/d/15ImUCpyi1Jsd8yF8Z6wey_7cw793CymWTLxOqwMka3P1CzE5hQun6qiC/edit"
これで、プロジェクトがローカルに正常にデプロイされました。クラウドに公開したり、クラウドからプルする場合は、clasp pull
およびclasp push
コマンドを使用できます。ただし、これらのコマンドは Git とはまったく異なるものであることに注意してください。これらは単に元のコンテンツを上書きするだけです。おすすめは、clasp pull
を使用しないことであり、必要な場合にのみclasp push
を使用することです。もちろん、Clasp の開発チームは非常に注意深く、clasp pull
を使用する場合、ローカルに同じ名前のファイルが存在する場合、プロセスが終了し、これを通知します。
ローカルの GAS プロジェクトを Git で管理する#
GAS のクラウド内蔵のバージョン管理システムには頼ることができません。バージョンの数も限られており、Git のように操作が完全ではありません。したがって、次のステップは、Git と Github を使用してローカルプロジェクトを管理することです。実際、単にローカルで新しい Git リポジトリを初期化するだけです。
作業ディレクトリを対応するプロジェクトに移動します。そして、Git リポジトリを初期化します:
git init
ローカルでバージョン管理するだけなら、ここで通常通り Git を使用できます。ただし、Github などのクラウドリポジトリにアップロードする場合は、さらにいくつかのステップが必要です。
まず、.gitignore ファイルを作成して、Git に管理される必要のない一部のファイルを無視するようにします。clasp がローカルに作成したプロジェクトを見ると、隠し.clasp.json ファイルがあることに気付くでしょう。これにはスクリプト ID と親 ID が記録されており、clasp が関連するクラウド上のファイルを特定するために使用されます。明らかに、これは Git で管理する必要はありません。したがって、.gitignore で無視するようにします。
touch .gitignore
echo ".clasp.json" > .gitignore
もちろん、エディタ(たとえば vscode)を使用してドキュメントを開き、編集して保存することもできます。
次に、通常どおりgit add
などのコマンドを実行できます。
git add --all
git commit -m "init"
最後に、Github などのクラウド上で新しいリポジトリを作成し、ローカルリポジトリをプッシュできます。