GMailで特定のラベルに届いたメールをトリガーにIFTTTでWebHookしたい

#はじめに
[IFTTT](https://ifttt.com/)から[GMailのサービスが削除](https://help.ifttt.com/hc/en-us/articles/360020249393-Important-update-about-the-Gmail-service)されて久しいですが、
これによっていくつかGMailをトリガーに動かしていたIFTTTが動かなくなってしまいました。
なんとなく[Zapir](https://zapier.com/)等に乗り換えようかなとも思いましたが、
今回Google App ScriptとSpreadSheetでこれを代用できることがわかりましたので
シェアさせていただきます。

#1)IFTTT側の準備
## 1-1)My Servicesに行きます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1817/b99a07cf-2726-cfa9-ab90-b3301acde053.png)

## 1-2)Webhookを設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1817/c1c93b18-c17a-92ff-7b78-9156dafd4d6d.png)

Webhooks>settingに行きます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1817/9f72c424-576f-9333-95fd-872651f08d20.png)

下記の赤枠のURLをコピペしてブラウザのアドレスに貼り付けて行きます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1817/a50e3443-04a4-6949-0946-d619c4509b26.png)

遷移したら Triggerの右横の{{event}}って書いてある箇所を"gmail"に変更し,
curl -X POSTの右側のURLをコピーして起きます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1817/94bd09be-275b-2d30-51d4-172d6f07e9e5.png)

#2)Google側の準備
##2-1)Spreadsheetを作成
SpreadシートにはトリガーにしたいGMailを下記のように作成しましょう

- A列 GMailのラベル
- B列は　=ENCODEURL("ラベル名")

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1817/a4db03e6-f5ec-eac4-3428-5e3e8b0ed0ee.png)

##2-2)GASを作成
先程のSpreadsheetからTools>Scripteditoを選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1817/5da4a118-d6f7-6751-fa94-1c0b1ccb4be4.png)

##2-3)GASを実装
下記の赤枠の部分に
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1817/55e243fb-4160-56a0-e69f-74d2f9d1a523.png)

IFTTTのURLの部分を1-2)でコピーしたものに変更して保存してください

```JavaScript
function myFunction() {
    // !!please set your ifttt webhook url!!
    var IFTTT = 'https://maker.ifttt.com/trigger/さっき保存じたURL';
    // get data from spread sheet
    var labels = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
    // for all labes;
    for (var v = 0; v < labels.length; v++) {
        if (labels[v].length < 2) {
            return;
        }
      
        // get all unread messages
        var threads = GmailApp.search('label:' + labels[v][0] + ' label:unread');
        var gotMail = false;
        for (var t = 0; t < threads.length; t++) {
            var messages = threads[t].getMessages();
            for (var m = 0; m < messages.length; m++) {
                messages[m].markRead();
                gotMail = true;
                Logger.log(messages[m].getSubject());
            }
        }
        //  POST IFTTT if you've got email from with the label
        if (gotMail) {
            Logger.log(IFTTT);
            var res = UrlFetchApp.fetch(IFTTT, {
                'muteHttpExceptions': true,
                'method': 'post',
                'contentType': 'application/json',
                'payload': JSON.stringify({
                    "value1": labels[v][1]
                })
            });
            Logger.log("Response:" + res);
        }
    }
}
```
##2-4)GASをテスト実行
三角の矢印を押下してください
初回は色々GoogleSpreadsheetやGmailとの連携をするためにポップアップがでますが
すべて許可してつないでください

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1817/bd1700f7-8d41-b970-d3d7-3f52b0076c8b.png)


##2-5)GAS Triggerを設定
最後にここを押して
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1817/466a1cb8-3783-f9e8-5efe-1d1b6c2a006f.png)

"+Add Trigger"を押して新しいトリガーを下記の様に設定しましょう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1817/0e18fdad-bdef-70b1-092a-ea1d3dc5ba49.png)