
「検索して知りたい情報を調べる」って良く有ることだと思うんですけど、検索する手間が面倒ですよね。
その手間を省くために「LINE Notifyを使って自動で色んな情報を取得してみよう」が今回のテーマです。
今回はLINE Notify以外に、IFTTTやGAS(Google Apps Script)を使います。
全部が全部書いてないので後日どこかで追記しようと思います・・
例えば
- 定期的なもの(毎朝とか)
- 天気予報を通知させる。
- ゴミ収集日を通知させる。
- Googleカレンダーの予定を通知させる。
- 何か帰り際に買ってきて欲しいものが有るか聞く。
- 不定期的なもの(そういう時だけ)
- 電車が遅延したら通知させる。
- 雨が降りそうになったら通知させる。
- Twitterで特定のツイートやエゴサwを通知させる。
- サイトの更新情報をRSSリーダーのように通知させる。

設定内容など、本ページは2020年5月11日時点の内容です。
LINE Notifyとは?
LINEが提供する公式アカウントです。
これを介してIFTTT等のWebサービスやアプリケーションと連携することで、LINE上で通知の受取が出来ます。
- 1時間に通知できる回数は1,000回まで
- 広告や販売促進などの目的による利用は禁止
- 同一または類似のメッセージを不特定多数に送信する行為は禁止
- LINE Notify API Document
https://notify-bot.line.me/doc/ja/ - LINE Notify利用規約
https://terms2.line.me/line_notify_terms_of_use?lang=ja
IFTTTとは?
IFTTTは、様々なwebアプリケーションやアプリ同士を連携させる事が出来るwebサービスです。
「if this then that」の略で、「こうなったら(if this)」というトリガーを基に「こうする(then that)」というアクションを行うことが出来ます。
連携するAのサービスをトリガーに、Bのサービス側でアクションさせる事が出来るので、主に作業内容の自動化や管理の一元化に使われています。
直感的に操作できる上、様々なAppletと呼ばれるレシピが公開されているので、非エンジニアでも使いやすいと思います。

GASとは?
GASは、Googleが提供をしているGoogle Apps Scriptというサーバー上で動作するサービスです。
GAS独自の関数やルールは少し有るものの、Java ScriptやHTMLなどの言語でプログラム出来て、Googleの各サービスだけでなくSlack・Twitter・LINE Notify等と外部APIを使って連携できます。
Googleサーバー上で動作するため費用が掛からず、常時稼働させて特定のイベントやスケジュールをトリガーに様々な事柄を自動化させることが出来ます。
導入方法
自動化に際して、今回は上記3点の「LINE Notify・IFTTT・GAS」というサービスを使い分けます。
LINE Notify + IFTTT or GASという使い方で、基本的にはIFTTTを使います。
IFTTTとGASについては下記のような感じです。
- IFTTTなどのWEBサービスと連携させるか
- トークンを発行してGASなどを介して設定させるか
例えばコピペするにしても自分用にどこをどう弄れば良いのかとか、スクリプトはこう書いてあるのが見つかったけどアクセストークンとかあんまり漏れるとよろしくない情報をコード内に書くよりはOSの環境変数に書いておいてスクリプトで読み込むほうが良いとか、勝手がイマイチ分からんくない?w
ということで僕は知識も無いし勉強してるわけでも無く、「これを実現させるにはこういう方法が有るんだ~良く分からないけど設定してみよう」程度なので、基本的にはIFTTTのAppletで実現させて用意されていない場合はGASを介した環境から実現させようって感じで行いました。
知識が有る場合は自由に設定できる分、上記で言う(2)の方法が良いのだろうなぁと思いました。
LINE NotifyとIFTTTの導入方法
LINE Notifyを友だち追加して、IFTTTと連携済みになればOKです。
検索

QRコード



他にも有りますがとりあえずIFTTTを選択すると良いです。




GASの導入方法
スタンドアロンタイプとコンテナバインドタイプの2種類が有ります。
良し悪し有って一概には言いづらいけど、僕みたいに少し触る程度ならコンテナバインドタイプの方が良いかもしれません。
- スタンドアロンタイプ(Standalone Scripts)

名前を付けて保存するとドライブ上にスクリプト単独のファイルが表示されます。


- コンテナバインドタイプ(Container Bound Scripts)

名前を付けて保存するとドライブ上にはG Suiteアプリが表示されます。


その日の天気予報を朝に通知させる方法
LINE Notify + IFTTT
今回は「今日の天気予報を決まった時間にLINEへ通知する」を選びました。





雨が降りそうになったら通知させる方法
LINE Notify + IFTTT
今回は「雨が振りそうになったらLINEに通知する」を選びました。
※「降る」の漢字が違うけど、気になるならMy Appletsで変更できます。





明日の天気が雨のときに通知させる方法
LINE Notify + IFTTT
今回は「明日の天気が雨の時にLINEでお知らせ」を選びました。





Googleカレンダーの予定を通知させる方法
LINE Notify + IFTTT
今回は「GoogleCalender → LINE」を選びました。






電車の遅延情報を通知させる方法
2種類の方法を記載していますが、IFTTTで既存のAppletが無いので、どちらもGASを使っています。
前者は、Yahoo!路線情報のメール通知サービスを利用してGmailに飛ばした通知をGASで更にLINEに飛ばしています。
後者は、鉄道遅延情報のjsonという遅延路線をまとめたサービスを利用して任意の遅延情報をGASでLINEに飛ばしています。
LINE Notify + GAS + Yahoo!路線情報
任意の在来線などを登録します。






var FindSubject = 'subject:(運行情報) ';
function getMail(){
//指定した件名のスレッドを検索して取得
var myThreads = GmailApp.search(FindSubject, 0, 10);
//スレッドからメールを取得し二次元配列に格納
var myMessages = GmailApp.getMessagesForThreads(myThreads);
for(var i in myMessages){
for(var j in myMessages[i]){
//スターがないメッセージのみ処理
if(!myMessages[i][j].isStarred()){
var strDate = myMessages[i][j].getDate();
var strSubject = myMessages[i][j].getSubject();
var strMessage = myMessages[i][j].getPlainBody().slice(0,100);
//LINEにメッセージを送信
sendLine(strDate,strSubject,strMessage);
//処理済みのメッセージをスターをつける
myMessages[i][j].star();
}
}
}
}
function sendLine(strDate,strSubject,strMessage){
//Lineに送信するためのトークン
var strToken = "●●●";
var options =
{
"method" : "post",
"payload" : "message=" + strDate + strSubject + strMessage,
"headers" : {"Authorization" : "Bearer "+ strToken}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify",options);
}


設定例

参考サイト様

LINE Notify + GAS + 鉄道遅延情報のjson




遅延情報は鉄道遅延情報のjson様から取得します。
// 発行された LINE Notify アクセストークン
var LINE_TOKEN = "●●●";
// 鉄道遅延情報を受け取りたい鉄道路線が Json 内にあればLINE通知する
function line_information() {
var json = JSON.parse(
UrlFetchApp.fetch(
"https://tetsudo.rti-giken.jp/free/delay.json"
).getContentText()
);
// 鉄道路線名
//https://rti-giken.jp/fhc/api/train_tetsudo/にアクセスして路線名を参照
var lineName = "●●●";
for (var i = 0; i < json.length; i++) {
if (json[i]["name"] === lineName) {
message = lineName + "が遅延しています";
var options = {
method: "post",
payload: "message=" + message,
headers: {
Authorization: "Bearer " + LINE_TOKEN
}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}
}
}


朝通知させる設定例

参考サイト様

各種サイトの更新情報を通知させる方法
LINE Notify + IFTTT
今回は「好きなサイトの更新情報をLINEで受け取る」を選びました。


各サイトに設置されているRSS/feedアイコンなどから分かります。

例えば


Twitterで特定のツイートを通知させる方法
LINE Notify + IFTTT
今回は「Twitter Search to LINE Notify Channel」を選びました。





コメント