Looker StudioからのメールをLINEに通知する方法(GmailからLINEに通知する)──Google Apps Script
Looker Studioには定期的にレポートを自動でメール配信してくれる機能があります。
日々のチェックにとても便利ですが、例えば情報共有のLINEグループに通知できるともっと便利です。
送られてきたメールをLINE(個人アカウント、またはトークグループ)に自動で通知する方法を解説します。
利用するツール
この3つのツールを利用します。
LINEのアカウント(個人のものでOK)とGoogleアカウント(Gmailアカウント)があれば大丈夫です。
- LINE Notify
- Gmail
- Google Apps Script
それではまず一連の作業手順を確認しましょう。
手順
設定の手順は下記になります。少し作業量が多いですが、順番に進めれば大丈夫です。
- LINE Notifyのトークンを発行する
- Google Apps Scriptを用意する
- テストの実施
- Google Apps Scriptのトリガーを設定する(自動化)
それでは設定していきましょう。
1.LINE Notifyのトークンを発行する
まずLINE Notifyのトークンを発行します。
LINE Developersから進むか、LINE Notifyに直接ログインするかどちらでもかまいません。
LINE Developers
https://developers.line.biz/console/
LINE Notify
https://notify-bot.line.me/ja/
LINE Developersの場合はコンソール画面から「プロダクト」をクリックして「LINE Notify」を選択します。
LINE Notifyをクリック。
マイページにログイン。
LINE Notifyのページから直接ログインする場合、個人のLINEアカウントのメールアドレスとパスワードでログインできます。
LINE Notifyにログインできたら、下のような画面が表示されるはずですので「トークンを発行する」をクリックします。
まずトークンの名前を入力します。
続いて今回、Gmailを転送(通知)したい宛て先を選択します。
自分(いまLINI NotifyにログインしているLINEアカウント)だけに通知する場合は「1:1でLINE Notifyから通知を受け取る」を選択します。
特定のトークルームも指定できます。
- 1:1でLINE Notifyから通知を受け取る
- トークルーム
準備ができたら「発行する」をクリックします。
トークンが発行されたらコピーして大事に保存しておきましょう。
この画面に戻ると発行されたトークンが表示されているはずです。
また、この段階でトークン発行時に指定した宛て先に通知が届いています。
これでLINE Notifyの準備は完了です。
ここからGoogle Apps Scriptの設定に移ります。
2.Google Apps Scriptを用意する
Google Apps Scriptにアクセスします。アクセスする際、今回メールを転送するGmailアカウントでアクセスしてください。
Google Apps Script
https://www.google.com/script/start/
「Start Scripting」をクリックします。
左側のメニューから「新しいプロジェクト」をクリック。
新しい画面が開いた際に始めから記述されているものは削除します。
以下のスクリプトをコピー&ペーストしてください。
その際に1行目の
var lineToken = "LINE Notifyトークン";
のLINE Notifyトークンをご自分で発行したトークンに書き換えてください。
var lineToken = "◆◆◆◆◆◆◆◆"; // ここにLINE Notifyのトークンを入力します
var get_interval = 5;
var specificSender = "looker-studio-noreply@google.com";
function send_line(Me){
var payload = {'message' : Me};
var options = {
"method" : "post",
"payload" : payload,
"headers" : {"Authorization" : "Bearer " + lineToken}
};
try {
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
} catch (e) {
Logger.log("Failed to send message: " + e.toString());
}
}
function fetchContactMail() {
var now_time = Math.floor(new Date().getTime() / 1000);
var time_term = now_time - ((60 * get_interval) + 3);
var strTerms = '(is:unread after:' + time_term + ')';
var myThreads = GmailApp.search(strTerms);
var myMsgs = GmailApp.getMessagesForThreads(myThreads);
var valMsgs = [];
for(var i = 0; i < myMsgs.length; i++){
var from = myMsgs[i].slice(-1)[0].getFrom();
// Check if the message is from the specific sender
if (from.indexOf(specificSender) > -1) {
valMsgs[i] = " " + (myMsgs[i].slice(-1)[0].getDate().getMonth() + 1) + "/" + myMsgs[i].slice(-1)[0].getDate().getDate()
+ " " + myMsgs[i].slice(-1)[0].getDate().getHours() + ":" + myMsgs[i].slice(-1)[0].getDate().getMinutes()
+ "\n[from]" + from
+ "\n\n[subject]" + myMsgs[i].slice(-1)[0].getSubject();
}
}
return valMsgs;
}
function main() {
var new_Me = fetchContactMail();
if(new_Me.length > 0){
for(var i = new_Me.length - 1; i >= 0; i--){
send_line(new_Me[i]);
}
}
}
スクリプトの準備ができたら名前を変更しておきます。
名前が変更できたら保存します。
スクリプトのテストをします。
プルダウンからmainを選択してから「実行」をクリックします。
ここでスクリプトを実行するための権限を確認されますので、内容を確認しながら進んでください。
アカウントの権限の確認が完了するとスクリプトが実行され、左下の実行ログが表示されます。
ここに「実行完了」と表示されればOKです。
3.テストの実施
ここまでできたらテストメールを送信して動作を確認してみましょう。
今回設定しているGmailアドレス宛てにテストメールを送信します。
先ほど設定したGoogle Apps Scriptの画面に戻って「実行」をクリックします。
LINEにGmailから通知が届きました。
送信者と件名が表示されています。
これでGmailにメールが届くとLINEに通知が届くところまで完了です。
ただし現状ではGoogle Apps Scriptでスクリプトを「実行」しないと作動しないので、これを自動的に一定の間隔で作動するように設定します。
4.Google Apps Scriptのトリガーを設定する(自動化)
左側のメニューから「トリガー」をクリックします。
右下の「トリガーを追加」をクリック。
トリガーの条件を設定します。
今回の設定は下のようになります。
- 実行する関数を選択
- main
- 実行するデプロイを選択
- Head
- イベントのソースを選択
- 時間主導型
- 時間ベースのトリガーのタイプを選択
- 分ベースのタイマー
- 時間の間隔を選択(分)
- 5分おき
指定したら「保存」をクリックします。
トリガーの一覧にいま設定したトリガーが表示されていれば完了です。
これで5分おきにlooker-studio-noreply@google.comから送られてきたメールがLINEに通知されるようになりました。
以上、Looker Studioの自動メールをLINEに通知する(GmailからLINEに通知する)方法の解説でした。