Skip to main content

電車の遅延情報を LINE で受け取る [GAS x LINE Notify]

· 2 min read
hi120ki
Hiroki Akamatsu

Google Apps Script と LINE Notify API を使って電車の遅延情報を LINE に自動で投稿するシステムを作ります

LINE Notify に登録して API Key を取得する

LINE Notifyでアカウントを作成

マイページ → アクセストークンの発行(開発者向け) からトークンを発行

Google Apps Script でコードを書く

遅延情報は鉄道遅延情報の jsonから受け取ります

2019/08/03 追記

鉄道遅延情報の API アドレスが変更されました。

https://tetsudo.rti-giken.jp/free/delay.json

function main() {
var messege = getDelayInfo();
sendLinePost(messege);
}

// 発行された LINE Notify アクセストークン
var LINE_TOKEN = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";

// LINE に引数を投稿
function sendLinePost(message) {
var token = LINE_TOKEN;
var options = {
method: "post",
payload: "message=" + message,
headers: {
Authorization: "Bearer " + token,
},
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}

// 鉄道遅延情報を受け取りたい鉄道路線が Json 内にあれば message を返す
function getDelayInfo() {
var json = JSON.parse(
UrlFetchApp.fetch(
"https://tetsudo.rti-giken.jp/free/delay.json",
).getContentText(),
);

// 鉄道路線名
var lineName = "xxxx";

for (var i = 0; i < json.length; i++) {
if (json[i]["name"] === lineName) {
message = lineName + "が遅延しています";
}
}
return message;
}

そして Google Apps Script のトリガーを

実行する関数 : main

イベントのソースを選択 : 時間主導型

時間ベースのトリガーのタイプを選択 : 分ベースのタイマー

時間の間隔を選択(分) : 15分おき

に設定する

これで 15 分おきに指定した路線が遅延していないかチェックし,もし遅延している場合は LINE でメッセージが来ます