燃えないゴミの日をLINEで通知する

## はじめに

IFTTTの無料枠を利用して、燃えないゴミの日をLINEで通知する仕組みを超簡単に構築します。
所要時間は15分程度です。

本投稿に出てくるワード（詳細は別途お調べください）
・GoogleAppsScript
　⇒Googleが提供する言語でGoogleアカウントさえあれば環境構築無しにすぐに始められるJavascript。VBAのGoogle版のようなもの。
・Webhook
　⇒何かをキッカケにHTTP通信を行うこと
・IFTTT
　⇒後述します
・LINE Notify
　⇒LINEにて、外部webサービスから通知を受ける際に仲介役となってくれる公式アカウント

## 目次

1. 用意するもの
1. IFTTTの登録
1. Google Apps Scriptを実装

## 1. 用意するもの
* PC
* Googleアカウント

## 2. IFTTTへ登録

### そもそもIFTTTとは。。。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1035894/036b56b3-7fdd-848e-2299-37b2032dbe3b.png)

Google、Twitter、LineはもちろんIoTデバイスやあらゆるツールを相互連携させることができるツールです。
IFTTTは「If This Then That」の略で、「もし〇〇をしたら△△をする」という意味で、あるツールが指定の動作を行った場合、もう一方のツールに指定の動作をさせることを事前に登録しておくことが可能です。

### 例えば。。。

・AppStoreのアプリが値下げされたら通知してほしい
・家の半径50mに近づいたら電気を付けてほしい
・メールが届いたらLineに通知してほしい
・Twitter,Instagramに自動で投稿してほしい
・AIスピーカーに話した内容をスプレッドシートに登録してほしい
・AIスピーカーに話した内容をLINEで送信してほしい

### 他参考リンク

https://kabutogame.info/archives/3960353.html

https://ifttt-japan.club/bitcoin-check-applets


### IFTTTでの画面操作  

今回は、燃えないゴミの日が来たらLINEで通知する仕組みを作りたいので
If Thisを「Webhooks」
Then Thatを「Line」

#### (1) 画面右上のCreateボタンを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1035894/143ed211-4596-6d5b-cb8a-15047c82899d.png)

#### (2) Addを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1035894/34c4f2c4-7e20-bcce-1db2-a0e7ba47ec10.png)

#### (3) Webhooksを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1035894/9e33f4ed-9e70-e61a-fe51-2c851f7ffbcb.png)

#### (4) 今回は単純にPOSTを送るのみなので右側「Receive a web request」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1035894/618c0bec-14b5-173c-7095-05ca608b6b4f.png)

#### (5) 任意のイベント名を指定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1035894/73c812a1-f0d2-70b6-02fd-17e267ebe68b.png)

#### (6) これで半分、次はThen ThatにLINEを登録します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1035894/a103c3e9-e48b-12ca-bb34-375337dd94f7.png)

#### (7) LINEを選択（※初回のみLINEの認証が必要）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1035894/33044111-9df3-8efc-0109-9122978fc296.png)

#### (8) LINEが提供するサービスはこれ１つなので迷わずクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1035894/af73d29e-cf29-377a-04f3-e0f74363ae4e.png)

#### (9) Recipientに自身の登録しているLINEグループが表示されるので、送りたいグループを選択。以降は特に変更せず完了。
※選択したグループには「LINE Notify」のアカウントを招待しておいてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1035894/6f053446-6c94-9326-7f7a-41614b5b8008.png)

#### (10) Continue！！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1035894/6fef641f-414c-5939-1f25-f1f5d66225fa.png)

#### (11) 管理用のタイトルを付けてFinish！！（まだ終わらない。。。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1035894/2cb9d735-37c5-12a8-d714-41816c3893da.png)


#### (12) Explore>Webhooks>Documentationを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1035894/36d70f1e-9b77-ab45-c6af-dc8faa539eb8.png)

#### (13) Webhookに使用するURLを取得　
※Keyが流出すると悪用される可能性があるため注意
※このURLは後で使うのでメモ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1035894/13977ca5-1b46-7e3f-55de-d9831b300dbf.png)

IFTTTの登録は以上
---

## 3. Google Apps Scriptを実装

#### (1) GASのページへ移動
https://script.google.com/home/start

#### (2) 「新しいプロジェクト」を選択し、プロジェクトを作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1035894/97f0edb7-49e0-34d8-c75e-6e773645bbaa.png)

#### (3) コードを入力

```
function trashChecktest() {
  
  //毎日8:00に処理起動（Google Apps Scriptのトリガー設定を使用）

  //燃えないゴミの日は第一日曜日と第三日曜日とする
  
  //今日の曜日を取得
  var date_temp = new Date();
  var whatDay = date_temp.getDay();
  
  //日曜日以外の場合は処理終了
  //(0:日曜 1:月曜 ・・・6:土曜)
  if (whatDay!=0.0) return;
  
  //日曜日の場合は、第何日曜日かチェック（第一、第三以外は処理終了））
  if (date_temp.getDate() < 8){
    //燃えないゴミの日なので処理継続！
  }else if (date_temp.getDate() < 15){
    return;
  }else if (date_temp.getDate() < 22){
    //燃えないゴミの日なので処理継続！
  }else if (date_temp.getDate() < 29){
    return;
  }else{
    return;
  }

  //webhookを使用してラインに通知
  var url =
      "https://maker.ifttt.com/trigger/trachCheck/with/key/[IFTTTで割り当てられたkeyを指定]?value1=今日は燃えないごみの日です。&value2=2行目&value3=3行目" 
  UrlFetchApp.fetch(url);
}
```

#### (4) トリガー設定を選択（左側メニューの時計マーク）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1035894/e1a6d4c8-1807-4960-551b-391be97b2b41.png)


#### (5) このスクリプトをどの周期で自動起動するかを設定します。今回は、毎日8時に起動。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1035894/b1f818c7-4f20-a7e1-9830-2c3dd233dc98.png)

Google Apps Scriptの実装は以上
---

Google Apps Scriptでデバッグもできるのでお試しで実行。。。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1035894/64e52dc5-0d37-57f8-8f79-67f3700b33bd.png)

ラインのグループを見てみると。。。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1035894/d3ce4aa6-7fee-df67-7c39-202a37a8fdc3.png)
ちゃんとメッセージが届いています！
IFTTTで登録した通りのフォーマットでメッセージが届きました。
※先頭に[IFTTT]が付くのはデフォルト。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1035894/434f678a-65e4-1815-8da5-d2bf3c7c3b20.png)

応用すればいろいろなことに使えそうなIFTTTとWebhookを利用したLINE通知の話でした。

以上