Gmailで色々なところに登録していると、メルマガやらなんやらがたくさん届いてうっとうしいので通知をOFFにしています。
このたびループイフダンを始めたのでその約定メールだけは通知させたい!と思ったのですが、iPhoneのGmailアプリや、デフォルトの”メール”では特定のメールだけの通知というのができませんでした。
IFTTTを使おうとすると、なんといつだかにGmailとの連携が解除されてしまっていてネット上にある方法は使えないものが多くなってしまっていました。
よくよく調べていると「Google Apps Script」なるものでLineに通知を飛ばせるようなのでその方法を書いておきます。
今回はこちらのnoteをとても参考にしています。ありがとうございます。

- PC(LINEアクセストークンの発行・GASを書くのに必要です。)
- 通知受け取りたい端末(いつも使っているスマホ・LINEが入っているもの)
LINE Notify からアクセストークンを発行する(PCで操作)
下のアドレスからLINE Notify にアクセスして、ちょっと下に表示されているQRコードからLINE Notify を友達に追加します。(設定しなければここに通知が届きます)

それから画面右上の”ログイン”リンクからLINEアカウントにログインして、マイページに行きます。

マイページに行ったら「アクセストークンの発行(開発者向け)」というところから、『トークンを発行する』ボタンを選択してください。

選択するとトークン名・通知の送信先を選択する画面になります。
トークン名は通知に表示させたい名称を入力してください。
送信先として一番上を選ぶと先ほど友達に追加したLINE Notifyとのトーク画面に直接通知が送信されます。
通知専用のグループを作成してもいいかもしれませんね。

入力してトークンを発行するとすさまじい桁数のトークンが発行されます。
とてもじゃないけど手打ちなんてしてられないので、コピーしてPCのGmailから自分のスマホあてにメールしておきましょう。

以上でトークンの発行は完了です。お疲れさまでした。
Google Apps Scriptにて通知するためのプログラムを作成する(PCで操作)
作成するといっても、コピペでOKです。(ちょっとだけ変更してね)
下のリンクからGASのホームへ飛びます。

新しいプロジェクトを選択し、最初に書いてある3行くらいをすべて消して、下のプログラムをコピペしてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | varlineToken="**********";//LINE notify token varget_interval=1;//1分前からの新着メールを取得 functionsend_line(Me){ varpayload={'message': Me}; varoptions={ "method" :"post", "payload":payload, "headers":{"Authorization":"Bearer "+lineToken} }; UrlFetchApp.fetch("https://notify-api.line.me/api/notify",options); } functionfetchContactMail(){ //取得間隔 varnow_time=Math.floor(newDate().getTime()/1000);//現在時刻を変換 vartime_term=now_time-(60*get_interval);//秒 //検索条件指定(未読でラベル”ループイフダン”を持つもの) varstrTerms= ('is:unread label:"ループイフダン"'); //取得 varmyThreads=GmailApp.search(strTerms); varmyMsgs=GmailApp.getMessagesForThreads(myThreads); varvalMsgs=[]; for(vari=0;i<myMsgs.length;i++){ valMsgs[i]=" "+myMsgs[i].slice(-1)[0].getDate().getMonth()+"/"+myMsgs[i].slice(-1)[0].getDate().getDate() +" "+myMsgs[i].slice(-1)[0].getDate().getHours()+":"+myMsgs[i].slice(-1)[0].getDate().getMinutes() +"\n[from]"+myMsgs[i].slice(-1)[0].getFrom() +"\n\n[sbject]"+myMsgs[i].slice(-1)[0].getSubject(); // + "\n\n[Message]\n"+ myMsgs[i].slice(-1)[0].getPlainBody(); myMsgs[i][0].markRead();//メッセージを既読にする } returnvalMsgs; } functionmain(){ new_Me=fetchContactMail() if(new_Me.length>0){ for(vari=new_Me.length-1;i>=0;i--){ send_line(new_Me[i]) } } } |
変更する項目
1行目の******となっているところに、先ほど取得したLINEのトークンを張り付けてください。
22行目の (‘is:unread label:”ループイフダン”‘) が通知する条件です。コメントに書いてある通り、 現在は未読でラベル”ループイフダン”を持つものという条件になっているので、”ループイフダン”の部分を通知させたいラベルの名前に書き替えてください。
プログラムの実行
作成したプログラムを実行します。お好きな名前を付けて保存したら、”関数を選択”から”main”を選択して、実行ボタンを押します。

すると許可を求められるので、左下のちっちゃい詳細から(安全ではないページ)に移動を選択して、許可をしてください。

許可に成功したら、プログラムの実行条件を決めます。時計マークの”現在のプロジェクトのトリガー”を選択して下さい。

まだ設定していないので新規に追加します。画面右下の”+トリガーを追加”から

下の画像のように設定を変更して保存してください。

以上でGASのプログラム作成は終了です。お疲れさまでした。
おわりに
ここまでの作業にミスがなければ、指定したラベルに新着メールが来るたびに通知がやってきます!
結構めんどうな手順も多いですが、一度設定してしまえば非常に便利に使えるのでぜひ頑張ってみてはいかがでしょうか。
コメント
ありがとうございました!!
無事に設定できました^_^