GAS（Google Apps Script）でHelloWorldしてみた（①バッチプログラム編）




#1．はじめに
今回は、GAS（Google Apps Script）で、HelloWorldとログに表示するプログラムを作って、それを定期的（５分置きとか）に実行するように設定します。

GAS（Google Apps Script）とは、簡単に説明しとくと、以下のもので、とても便利なのです。

- 無料！！
- ブラウザさえあればOK。インストールなどが不要
- プログラムを配置して、定期的に実行できる。
- WEBアプリケーションとして公開できる

などです。
これを使って、ちょっと動かしてみようというのが今回の趣旨になります。

#2．プログラムを作成

まずは、Googleドライブの中に適当なディレクトリを掘って、そこに新規で「Google Apps Script」の新規ファイルを作成してみました。
![gas_HelloWorld001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448092/1e936d31-3543-1ea1-2421-991832bde4f5.png)

私の場合、何故だか↓のような画面になりました。
![FireShot Capture 091 - ページが見つかりません - script.google.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448092/7cbb5ad8-bd38-61c5-7a59-00a3ce972a4e.png)

複数アカウント持っているとそうなることあるとのことでしたが、解決方法が分からなかったもので、直接、「[Google Apps Script](https://script.google.com/home)」から、操作することに。
![FireShot Capture 097 - 自分のプロジェクト - Apps Script - script.google.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448092/85c0073d-96b1-42e2-eba9-de423e57b81d.png)

↓「新しいプロジェクト」を押します。
![FireShot Capture 097 - 自分のプロジェクト - Apps Script - script.google.com - 002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448092/d3995277-7efc-2ce7-c1d2-c9ac068190ac.png)

すると、↓このように新規で、GASのプロジェクトが作成されます。
![FireShot Capture 094 - 無題のプロジェクト - script.google.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448092/1ceac4f1-50aa-c76a-56ef-7c1e6c4a206a.png)

とりあえず、↓のようにLogに「HelloWorld!!」が出力されるようにだけ書いてみます。

```Javascript:batchTest.gs
function myFunction() {
  Logger.log('HelloWorld!!');
}
```

ちなみに、上の「無名のプロジェクト」を押すと、プロジェクト名が変更でき、↓からファイル名を変更できますので、合わせてやっておきましょう。
![FireShot Capture 054 - GasTest01 - script.google.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448092/f2bf88ed-9b62-c5b7-0a66-f62a7eb51e54.png)

上記の「Google Apps Script」から、新規プロジェクトを作った場合には、Googleドライブの直下にプロジェクトファイルが出来てました。
ドラッグ＆ドロップで、初めに作ったディレクトリに置けば、次からはそこから開くことができます。
![FireShot Capture 088 - GAS_Test - Google ドライブ - drive.google.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448092/0e4be70b-6a8b-95cd-67b3-01b63a8d23a1.png)

#3．実行してみる

↓実行ボタンを押すことで実行できます。ちなみに、動かす関数も指定できます。
![FireShot Capture 057 - GasTest01 - script.google.com_co01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448092/0c655a56-d49a-e784-2e48-b1663ee5d608.png)

実行結果は、「表示」→「ログ」から見れます。
↓のように表示されていれば成功です。
![FireShot Capture 064 - GasTest01 - script.google.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448092/93ae2743-ce26-f4de-9241-1dd7cd295a6a.png)

#4．補足
##4.1．関数を追加してみる
↓のように２つ目の関数を追加してみましょう。

```Javascript:batchTest.gs
function myFunction() {
  Logger.log('HelloWorld!!');
}

function myFunction02() {
  Logger.log('HelloWorld!! 02');
}
```

##4.2．追加した関数を実行してみる。

↓追加した方の関数を指定して実行してみましょう
![FireShot Capture 082 - GasTest01 - script.google.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448092/56b4fabd-d538-db38-91ea-f4171e409b6a.png)

↓のように表示されればOKです。
![FireShot Capture 085 - GasTest01 - script.google.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448092/345bd772-b4f9-ddab-4937-da8b1841fd8f.png)


#5．定期的に動かすための設定
定期的に動かす仕組みは、GASでは「トリガー」と呼ばれるものになります。
トリガーを設定してみましょう。

「編集」→「現在のプロジェクトのトリガー」を選択します。
![gas_HelloWorld002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448092/0800badc-afbd-b951-7276-c21d44a631a9.png)

いま、開いていたプロジェクトのトリガー設定画面が開きます。
今はまだ1つも設定がないので、一覧には何も出ません。
![FireShot Capture 100 - GasTest01 - プロジェクトのトリガー - Apps Script - script.google.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448092/993898ef-7347-dc10-99b6-235726be3cbb.png)

ここで、右下の「トリガーを追加」ボタンを押します。

↓の画面が表示されます。
![FireShot Capture 103 - GasTest01 - プロジェクトのトリガー - Apps Script - script.google.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448092/a69ef743-78ca-72b3-168e-e4011779d155.png)

■実行する関数を選択：今回、記載した２つの関数が選択できます。どちらを選んで頂いてもよいです。

■実行するデプロイを選択：これは、バージョンを意味します。Headというのは最新バージョンという意味です。とりあえず、最新バージョンでいいので、「Head」を指定しときます。

■イベントのソースを選択：定期的に実行する場合には「時間主導型」、日時を指定する場合には「カレンダーから」を指定します。今回は「時間主導型」を指定します。

■時間ベースのトリガーのタイプを選択：時間ベースや分ベースを指定します。

■時間の間隔を選択（時間）：何時間置きに実行するかを選択

■エラー通知設定：エラー通知の頻度を選択します。


テストですので、５分置きでの実行で設定してみました。
![FireShot Capture 106 - GasTest01 - プロジェクトのトリガー - Apps Script - script.google.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448092/592ae895-0c20-0f8b-1c85-d5bf63ff650b.png)

「保存」ボタンを押します。すると、以下のように１行追加されるはずです。
![FireShot Capture 112 - GasTest01 - プロジェクトのトリガー - Apps Script - script.google.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448092/782fdedf-1fe3-de2f-a2ac-fc6b3a53b824.png)

しばらく放置。。。

右クリックして、「実行数」を選択
![FireShot Capture 123 - GasTest01 - プロジェクトのトリガー - Apps Script - script.google.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448092/8a0cd36a-a8d8-25e5-989f-ffb407e20646.png)

↓のように、実行した履歴が表示されます。
![FireShot Capture 126 - GasTest01 - プロジェクトの実行 - Apps Script - script.google.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448092/22b9f667-4424-1ba7-0361-db9d4098e087.png)

その履歴、１行をクリックすると、実行結果（ログ）が表示されます。
![FireShot Capture 129 - GasTest01 - プロジェクトの実行 - Apps Script - script.google.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448092/e7398b3c-8d47-3786-0314-0983b58d6c8e.png)


#まとめ
このようにサーバを用意することなく、とても簡単に、定期的に実行するための仕組みが無料で作れてしまうというのが、Google Apps Scriptのよいところなんですねー。
次回は、WebアプリケーションのHelloWorldをやってみようと思います。