Google Apps Script（gas）の環境構築

最近、Google Apps Script（gas）の学習を始めてみました！
ここでは環境構築について書いてみようと思います。

[1.環境構築](#環境構築)
[2.バージョン管理](#バージョン管理)
[3.デプロイ](#デプロイ)
[4.プロパティストア](#プロパティストア)

##環境構築
環境構築ってかなり面倒くさいイメージありますが、gasの環境構築はかなり簡単なんです。
というか環境はもう既に出来ているって感じです！

1. googleスプレッドシートを開く [^注]
2. ツールタブを押下
3. スクリプトエディタを選択

[^注]: スプレッドシートからで無くてもスクリプトエディタを開くことは出来ます。


これですぐに開発を始めることが出来ます。

スプレッドシートを開いて
![スクリーンショット 2021-09-18 9.29.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/1d055fab-e992-3d04-96fa-7b3ef2285926.png)

ツール　＞　スクリプトエディタ
![スクリーンショット 2021-09-18 9.32.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/7b011e6b-2998-a6a3-a9c8-0d7edd0449e6.png)

ここに開発して下さい！
![スクリーンショット 2021-09-18 9.34.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/083276db-9b5d-dfa5-0edf-05cb1526f8bc.png)

実行方法は、
![スクリーンショット 2021-09-18 9.44.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/5eee30e8-9f18-b658-5ea0-781c783774fc.png)

これだけです！
![スクリーンショット 2021-09-18 9.46.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/e9138e13-a8b8-68c1-72ec-42270e30cf04.png)

##バージョン管理
バージョン管理をするために、githubとの連携をします。

###「Google Apps Script Github アシスタント」の導入
下記にアクセスして、chromeに追加を押下します。

https://chrome.google.com/webstore/detail/google-apps-script-github/lfjcgcmkmjjlieihflfhjopckgpelofo?hl=ja

![スクリーンショット 2021-09-25 10.50.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/a756fa8a-a3e5-dd70-8777-1218ffecc60f.png)


追加したら、スクリプトエディタを開きます。
そうすると、なんか追加されてますね。
![スクリーンショット 2021-09-25 10.55.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/02dd16a2-4c32-50c3-a301-c48f4eddc637.png)

###githubと連携
githubの登録は済んでいる前提で書きます。
まずは、アクセストークンを発行しましょう。
settingを開きます。
![スクリーンショット 2021-09-25 11.04.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/1b0f9db3-86b0-5191-f8c1-74ef3c2a4f77.png)

次に「Developer settings」を開いてください。
![スクリーンショット 2021-09-25 11.06.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/678fd0c5-f15f-92d1-7dc3-b9f372dee5ec.png)


「Personal access tokens」を押します。
![スクリーンショット 2021-09-25 11.12.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/d9d337b0-3736-5b3a-aaa2-0e0633a79dc8.png)

「Generate new token」を押します。
![スクリーンショット 2021-09-25 11.43.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/d90d0747-0bd9-57b7-16b1-0af488f30e80.png)

トークン名を決めます。今回は「TestGasToken」としておきます。
![スクリーンショット 2021-09-25 11.46.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/b79a6af3-aba8-0e48-5728-112afe0a231d.png)

少し下に行って、「repo」、「gist」にチェックします。
![スクリーンショット 2021-09-25 11.54.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/3489ee7e-4aa9-3392-ab89-70b0e5f28329.png)

「Generate token」を押します。
![スクリーンショット 2021-09-25 11.56.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/9e34c0f6-d603-a3a8-bf37-6fd77654fde5.png)

トークンが発行されました！コピーしましょう。
![スクリーンショット 2021-09-25 11.58.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/686713dc-a0c7-0489-9066-df72e87675c3.png)

スクリプトエディタに戻ります。
「Login to SCM」を押して、
![スクリーンショット 2021-09-25 12.03.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/4d1b8251-10f6-ae18-1b03-7d4190849c81.png)

githubのユーザー名、アクセストークンを入力してログイン！
![スクリーンショット 2021-09-25 12.05.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/70a7fcfa-87f0-c97e-42b1-467dddfae136.png)

認証完了です。
![スクリーンショット 2021-09-25 12.07.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/03ccd587-33ac-c6f6-c18f-8e91ca7d6355.png)


と同時にこんな画面が出てくるかもしれませんので、googleアカウント選択して許可してください。
![スクリーンショット 2021-09-25 12.11.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/ac385c86-8dbb-a7bc-0f20-b3b6e5bb304d.png)

最後にgas側のAPIをオンにします。押します。
![スクリーンショット 2021-09-25 12.24.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/4e5bc875-5fe2-6d29-394d-23ae22dbe655.png)

すると、オフになってるので
![スクリーンショット 2021-09-25 12.27.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/16bd79d8-2ba6-dee1-854c-fd24fdec0916.png)

オンにします。
![スクリーンショット 2021-09-25 12.28.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/1fc3b6d2-fe47-e45c-296e-a6287a3a96ff.png)

これで完了です。
リポジトリ作成は「Create new repo」から出来ます。
下矢印はpull、上矢印はpushが出来ます。歯車みたいなマークはignoreファイルの設定が出来ます。
![スクリーンショット 2021-09-25 12.30.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/89b429b4-38d9-1dfa-87a9-cf7ccaaa944c.png)

##デプロイ
アプリを作って公開する時ですが、gasは簡単にデプロイが出来ます。

デプロイ > 新しいデプロイと進みます。
![スクリーンショット 2021-09-25 12.46.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/d9a46cce-c346-22f1-b6a9-40ad49927295.png)

種類の選択で、「ウェブアプリ」を選択。
![スクリーンショット 2021-09-25 12.48.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/a9c52d84-aca8-00d1-7b36-e357ff456f1f.png)

以下を入力して、デプロイを押下して完了です！とても簡単で良いです。
　- 説明 : 任意
　- 次のユーザーとして実行 : 自分のgoogleアカウントを指定
　- アクセスできるユーザー : 公開するので、全員を選択。
![スクリーンショット 2021-09-25 12.58.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590579/af30e0ae-62cd-72f4-8d11-6c2a6c00f4a5.png)

##プロパティストア
gasにはプロパティストアというとても便利なものがあります。
例えば、外部APIとの連携アプリを作る際にアクセストークンが必要です。
これはコードに書きたくないですよね。

そういったものを別の領域で管理していいよ！っていうものです。

データ構造としては、キーとバリューです。
プロパティの作成にはコードを実行する必要があります。
下記を実行するだけです。一回実行すれば永続化されます。

```javascript:test.gas
function setProperty() {
  PropertiesService.getScriptProperties().setProperty("key","value");
}

```

**setProperties()**を使用して複数一気に追加することもできます。

```javascript:test.gas
function setProperty() {

  PropertiesService.getScriptProperties().setProperties({
    'key': 'value',
    'key2': 'value2',
    'key3': 'value3',
  });

}

```

実際に値を使用する際は、**getProperty()**を使用します。

```javascript:test.gas
function myFunction() {

  const value = PropertiesService.getScriptProperties().getProperty('key2');
  console.log(value); // 出力結果 : value2
}

```

これで安心してgitなどでもソース公開出来ます！