GAS入門① LINEへの発送通知集約
※感想記事です
さくっと手順を知りたい方は、リンク先の方の記事が大変分かりやすいのでご参照ください。(時間空きすぎて細かい手順や詰まった所など忘れてしまった)
きっかけ
GAS(Google Apps Script)で遊んでみよう!
と思いたち、簡単なところから試してみた。(ので備忘録的にnoteに書いてみる)
まず「プログラミング=効率化」ということで解決したい課題を設定してみた。
今回の課題は
「通販購入が多すぎて、何がいつ届くのか分からない」
というもの。
もちろん各種発送通知はメールで届くのだが、
Gmailがカオス化している(整理できていないのが悪い)ので
「ヤマトさん来たけど何頼んだっけ」
「メールを見落としてたー 再配達だ…」
となりがちであった。
個人的にLINE通知だと管理が容易だなと思っていたが、ヤマトさんはLINE通知もあるが佐川さんはないし...
というわけで、まずはGmailに送られてくる発送通知をLINEに全て転送することとした。
やったこと
ざっくり手順は以下の通り。
①LINE NotifyでToken発行
②スクリプト作成
③マイトリガーの設定
手順についてはリンクを参照いただくとして、作成したコードを下記に貼った。
「件名に"発送"という文字列を含むメールをGmailが受信した時に、メール本文をLINE Notifyから通知する」というコードとなっている。
var lineToken = "LINEのトークンを貼り付ける"; //LINE notify token
var get_interval = 30; //〇分前~現在の新着メールを取得 #--トリガーをこれに合わせておく!!
function send_line(Me){
var payload = {'message' : Me};
var options ={
"method" : "post",
"payload" : payload,
"headers" : {"Authorization" : "Bearer "+ lineToken}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}
function fetchContactMail() {
//取得間隔
var now_time= Math.floor(new Date().getTime() / 1000) ;//現在時刻を変換
var time_term = now_time - (60 * get_interval); //変換
//検索条件指定
var strTerms = '( is:unread after:'+ time_term + '{ subject:発送 subject:出荷 } )';
//取得
var myThreads = GmailApp.search(strTerms);
var myMsgs = GmailApp.getMessagesForThreads(myThreads);
var valMsgs = [];
for(var i = 0; i < myMsgs.length;i++){
valMsgs[i] = "\n【date】: " + myMsgs[i].slice(-1)[0].getDate()
+ "\n【From】: " + myMsgs[i].slice(-1)[0].getFrom()
+ "\n【Subject】: " + myMsgs[i].slice(-1)[0].getSubject()
+ "\n【Body】: \n" + myMsgs[i].slice(-1)[0].getPlainBody().slice(0,200);
// myMsgs[i].markRead(); //メッセージを既読にする
}
return valMsgs;
}
function main() {
new_Me = fetchContactMail()
if(new_Me.length > 0){
for(var i = new_Me.length-1; i >= 0; i--){
send_line(new_Me[i])
}
}
}
特定アドレスからの送信を転送することも考えたが、アドレスのリスト化が手間だったので、まずはざっくり件名条件のみの設定とした。
余分な通知が多ければ条件を再設定するつもりだったが、意外にも余分な通知はほぼ来ていない。逆に通知漏れはあったので、後からキーワードの追加は行なった。
検索条件や取得間隔は個々人によるが、それ以外は同じコードで問題なく動くかと思う。
検索条件は、Gmailの標準の検索演算子で設定ができた。
検索演算子は覚えておくと普段から役立つかもしれない。
やってみた感想
シンプルに発送情報をちゃんと把握できる状態となった。
「ヤマトさん来たけど何頼んだっけ」
「メールを見落としてたー 再配達だ…」
が
「昨日通知が来たから、今日の午前は〇〇を届けにヤマトさんが来るはず!」
「えーっと今日届くのは、、(LINEで確認)」
に変わった。
また付随効果として、配達がいつ来るか把握しているのでインターホンも安心して出れるようになった。
実際の通知イメージ↓
手順としてそこまで難しくなく、QOLも上がり、
初心者にはコスパが良いプログラミングだと思う。
参照させていただいた記事を貼っているので、
そちらを参考に試していただければ。
参考にさせていただいた記事↓↓
この記事が気に入ったらサポートをしてみませんか?