GASでGoogle Chat Bot開発するにあたっての設定とか

###概要
GASでGoogle Chat Botを開発するのにあたり、APIの紐付けなどを行う必要がありますが、
それらの一連の作業を進めるのに苦戦してました。

やっと成功したのでそれの備忘録です。

###参考
**サイト**(リンク先すべて英文)
[Developing bots with Apps Script](https://developers.google.com/hangouts/chat/how-tos/bots-apps-script)
[Publishing bots](https://developers.google.com/hangouts/chat/how-tos/bots-publish)
[Managing releases of your bot](https://developers.google.com/hangouts/chat/how-tos/manage-releases)

###手順

####1.スクリプトを書く
G SuiteアカウントでログインしてGoogleドライブにて、
`新規>その他>Google Apps Script`と選択していき、gsファイルを作成し、コーディングしていきます。

####2.デプロイIDを取得
`公開>マニフェストから配置>Create`を選択していきます。
選択するとこんな感じになると思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558214/e8d043f6-dc65-a4f2-5c4a-b8c548160963.png)

`Deployment name`に適当に名前を入力。`Manifest`はそのまま`appsscript`。
`Version`も`New`のままで、`Save`してください。

さて、デプロイIDというのを取得する必要があるのですが、
あるバージョン以降でないと有効なデプロイIDが取得できません。

[こちらを参照](https://developers.google.com/hangouts/chat/how-tos/manage-releases#apps_script_bots)してほしいのですが、

>Warning: You can use the HEAD deployment for simple testing during development. But bots with HEAD deployments cannot be shared across a domain, and cannot be accessed by users unless they have read access to your script. Therefore for general testing and release you must create a versioned deployment.

とあります...

まあよくわからないのですが、**「バージョン0(Latest Version (Head)とか書いてあるやつ)、バージョン1では本番時に利用できないよ。」**ということみたいです。

ということなので、**さきほどCreateしたやつからデブロイIDを取得しても、使えません**。
なので**もう一度Createする必要があります**。
手順はさっきと同じで、`Version`を`New`のままで`Save`してください。
そうすると、**`Version2`のデプロイメントができてると思います。これ以降は本番環境で利用ができます**。

さて、Version2のデプロイメントで、`Get ID`というのをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558214/bc761020-46fb-6394-b606-dbe8084a781a.png)

そうすると、下のように**デブロイIDが表示されるのでメモ**っておきましょう。
(画像にあるデプロイIDは架空のものです)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558214/2dbccb84-bfa7-f73a-1b73-5e9a7817ed6e.png)

####3.プロジェクト作成
[GCP(Google Cloud Platform)](https://console.cloud.google.com/getting-started?hl=ja)にアクセスしてください。
アクセスしたら、**左上の`プロジェクトの選択`をクリック**してください。
恐らく、下のようなポップが出ると思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558214/d1be95ee-ebce-00a2-4da8-575946105d51.png)

ここで、**左上の`選択元 組織なし▼`をクリックし、あなたが所属する組織を選択**してください。
選択できたらこんな感じになるかと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558214/6f2b3c7e-4f40-820d-a905-2b2d460a2cd3.png)

---

次に、**右上の`新しいプロジェクト`をクリックしてプロジェクトを作成**してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558214/0ffc6913-1728-9493-06f8-05c8b70240cd.png)
`組織`と`場所`はそのままでいいでしょう。

作成できたら
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558214/33339831-1b37-7cdd-7727-e04b49627481.png)
プロジェクト情報などが表示されるページに飛びます。

####4.API有効化

次に、**左上の`≡`をクリックしてサイドバーから`APIとサービス>ライブラリ`を選択**してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558214/c954ef1a-0d42-0522-ae69-cfa50560c419.png)

そうすると、APIライブラリというページに飛びます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558214/15d0c4f3-43b7-9b36-9809-fec8caa3a315.png)

このページ中の**`APIとサービスを検索`という入力フォームに`Google Chat`と入力**してください。
そしたら、**`Hangouts Chat API`**というのが候補に出てくるので、それを**クリック**してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558214/79985aa2-d749-e325-9449-6f61617ba596.png)

そして、**`有効にする`をクリック**。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558214/3d9579de-fb29-560f-a49d-5dc2f512bdd8.png)
有効にできたらこんな画面になります。

####5.APIと紐付ける

次に、**左のサイドバーから`設定`を選択**してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558214/e18ba101-b20c-e413-766a-43639111264d.png)
このような画面になりましたか？

順を追って説明します。

まず**アプリケーション情報**では、**Botの名前、アイコン設定、Botの説明を記述**します。
**アイコン設定でのURLはローカルのリソースではダメ**みたいです。インターネット上に画像を公開するなどをしてURLを指定してください。

**機能** では**DMのみで機能させるか、DMとチャットルーム両方で機能させるかを選択**します。

さて次に、**接続設定**ですが、これが肝となります。
今回は、**`Apps Script project`を選択**してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558214/5a809dc8-b4e0-aad0-871a-cc7c17a1b6ab.png)
そうすると、デプロイIDを指定する入力フォームが現れますので、「2.デプロイIDを取得」で**メモしたデプロイIDを入力**しましょう。

最後に、**権限**ですが、**Botをインストール(追加?)できるユーザの範囲を指定**します。

すべて終わったら、`保存`をクリック。

####6.確認

ここまで問題なく進めたらGoogle Chatにて、作成したBotを追加してあげて、動作を確認してください。

以上になります。お疲れさまでした。

###プログラム更新について
プログラムを変更したら、**変更の度にデプロイIDを生成して、GCPにて指定してあげる必要**があります。
ちょっとめんどくさいです。(もしかしたら無駄なことしてる可能性もあり)

ですが、Botをもう一度追加し直すという作業は必要ありません。既に存在するBotに変更が反映されます。

###最後に
あくまでも備忘録なので、詳細な説明はしてないですし、できません。
なにか誤っている点があればコメントにて指摘してもらえるとありがたいです。