GASで毎朝その日の予定とかを通知するLINE Bot [第2回]

# この記事について

前回の続きです。前回は汚いコードを見せつけるだけという愚行を繰り広げたわけですが、この先で丁寧に解説してまいります。
今回は、Botの作成からMessaging APIのトークン取得，TimeTree APIのトークン取得，使用する方に合わせて書き換える箇所をご紹介します。

+ [第1回](//qiita.com/items/634bf26f7d1cb30e8944)
+ 第2回
+ [第3回](//qiita.com/items/5a2fbdbf11b4be6f8808)
+ [第4回](//qiita.com/items/64315d311d44275465af)

# LINE Botを作成

さっそく、肝心のBotを作っていきましょう。
[こちら](https://developers.line.biz/console/channel/new?type=messaging-api)から自分のLINEアカウントでログインし、以下の項目を入力してチャネル（＝Bot）を作成します。

| 項目           	| 内容                 	|
|----------------	|----------------------	|
| チャネルの種類 	| Messaging API        	|
| プロバイダー   	| 自分のLINEアカウント  	|
| チャネル名     	| 任意のBot名          	|
| チャネル説明   	| 適当な説明           	|
| 大業種         	| 自分の業種           	|
| 小業種         	| 自分の業種           	|
| メールアドレス 	| 自分のメールアドレス 	|

規約類をよく読んで項目にチェックし、`作成`をクリック。
Botの作成が完了するとBotの設定画面に移動するので、Messaging API設定の項目に移動し、`ボットのベーシックID`またはその下のQRコードで友だち追加をしておきます。

# LINE Messaging APIのトークンを取得
先程のページの最下部に **チャネルアクセストークン** という項目があります。
`チャネルアクセストークン（長期）`の右側にある`発行`をクリックすると、このBotのアクセストークンが発行されます。これをコピーします。

発行されたアクセストークンを、開いているGAS プロジェクトに登録します。
今回は、GASの標準機能の`PropertiesService`を使用します。

`ファイル`→`プロジェクトのプロパティ`
`スクリプトのプロパティ`の`行の追加`をクリック
`プロパティ`に**`LINE_TOKEN`**、`値`にコピーしたトークンを貼り付け

以上でLINE Botの作成，プロジェクトへの登録は終わりです。

# TimeTree APIのトークンを取得
[こちら](https://timetreeapp.com/developers/personal_access_tokens)から自分のアカウントでログインし、`トークンの作成`をクリック。
トークン名を入力する画面になりますが、好きな名前で大丈夫です。
名前で後に影響が出ることはありません。判別しやすければOK。
ガイドラインをよく読みチェックを入れ`作成`をクリック。
作成したトークンが表示されますが、**再表示されない**という仕様なので要注意（また新しく発行すればOK）。

作成したトークンをLINE Messaging APIと同様にGAS プロジェクトに登録します。

`ファイル`→`プロジェクトのプロパティ`
`スクリプトのプロパティ`の`行の追加`をクリック
`プロパティ`に**`TIMETREE_TOKEN`**、`値`にコピーしたトークンを貼り付け

最終的に`スクリプトのプロパティ`欄が以下のような状態になっていれば完了です。
![fig1](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/687929/49a03167-a5f2-3ded-21e8-cc2e4f93a74a.png)

# コードを変更する箇所

前回ご紹介したコードで、使用する方によって変えなければいけない箇所のご説明。

```javascript:notify
// Change these variables fit to your condition
const garbage = [0, '資源ごみ', '可燃ごみ', 'カン・ビン', '不燃ごみ', '可燃ごみ', 'プラスチックごみ'];
const area = '13101';
```
`garbage`には各曜日において収集されるごみの分別を配列で設定します。
回収がない日は`0`を設定します。
日曜始まりです。

`area`には天気情報を表示したい地域の標準地域コードを設定します。
標準地域コード…国が定める地域ごとに割り振られたコードです。[こちら](https://www.soumu.go.jp/toukei_toukatsu/index/seido/9-5.htm)から参照できます。

# 初回の実行

初回の実行で、Google カレンダーとの連携など、いくつかの権限が求められます。
自動実行では許可できないため、必ず一度は実行しましょう。
実行する関数を`notify`に設定し、`▶`をクリックしてみてください。
![fig3](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/687929/fcb503e9-d6e7-206c-1e28-cd58e4ad34b6.png)

承認が要求されます。GASの承認欲求を満たしてあげましょう。`許可を確認`をクリック。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/687929/c4716bd9-aa11-7379-ab35-a1261a1baaf5.png" height="200px">
GASの開発中にログインしているGoogleアカウントでログインすると、以下のような表示が出ることがあります。これは、Googleが確認していないアプリケーションで連携を行なうためです。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/687929/ecbeaef3-fd73-54b7-7030-5e434371e2e5.png" height="300px">
左下の`詳細`をクリックします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/687929/8b43dbfe-6c50-6c5f-a131-a396d1fc0cf1.png" height="400px">
<sup>（スクリーンショットを撮り忘れたので「無題のプロジェクト」になっています、すみません）</sup>
`Morning Assistant（安全ではないページ）に移動`をクリックすると、このアプリに許可する内容が表示されます。
問題なければ`許可`をクリックします。するとBotが実行されます。

# トリガーを設定する

毎朝このBotを実行させるには、トリガーを設定する必要があります。
![fig2](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/687929/60a26adc-0fa7-7a3d-72bd-d51025d758bd.png)
矢印の指しているボタンをクリックすると、トリガーの一覧が表示されます。
画面右下の`トリガーを追加`をクリックし、下の画像のように設定します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/687929/bf5ba216-70d6-72e5-fb3d-a0aa5ee3165b.png" height="500">
**時刻を選択**の項目には、自分が通知を受け取りたい時間を選択します。

以上でBotが機能するようになりました。次回はコードの詳しい解説をしていきます。
「動けばいいよ！」とか、「解説は要らないよ！」という方は、ここまで見るだけでOKです。お疲れ様でした！