【GAS】電車遅延情報をツイート
GoogleAppScript(以下GAS)にて電車遅延の情報をツイートする方法です。
過去記事でGASと連携してTwitter投稿を行う記事を書いてますのでどうぞ
madgenius.hateblo.jp
今回は上の定期ツイートの内容に電車遅延の情報を追加するのみになります。
電車遅延情報を取得してツイート
鉄道遅延情報のjsonを使って電車遅延情報を取得します。
ここがもし使えなくなった場合は各種運行会社のRSSを取得したり、公式Twitterを監視するのも使えます。(RSSなど公式の方が遅延理由もあるので便利ですが今回は簡単な方で...)
以下がソースです。10分毎のタイマーをセットしています。
//10分毎に鉄道遅延情報のjsonを取得して10分以内に更新された遅延情報をツイートする function TrainDelayTweet() { var response = UrlFetchApp.fetch("https://rti-giken.jp/fhc/api/train_tetsudo/delay.json"); var result = JSON.parse(response.getContentText()); for(var i = 0; i < result.length; i++) { var company = result[i].company; //会社 if (company == "東京メトロ" || company == "都営地下鉄") { var name = result[i].name; //路線 var date = new Date(Number(result[i].lastupdate_gmt) * 1000); // 最終更新日時 var Nowymdhms = new Date(); if ((Nowymdhms.getTime()-date.getTime())/1000/60 < 10) { var ResultYear = date.getYear(); var ResultMon = date.getMonth() + 1; var ResultDay = date.getDate(); var ResultHour = date.getHours(); var ResultMin = date.getMinutes(); CS_Twitter.TwitterSend(name+"("+company+")が遅延しました。\n情報更新日時:"+ResultYear+"/"+ResultMon+"/"+ResultDay+" "+ResultHour+":"+ResultMin); } } } }
10分毎に遅延情報を取得して更新時間が10分以内だったらツイートします。(しかし、普通に10分ごとに更新とかもあるので同じ路線が何度もツイートされることもある...)
私が都内に住んでいるので「JR九州」などを出さないために運行会社でフィルターをかけています。
ここでは東京メトロと都営地下鉄のみにしています。
JR東日本で山手線などを入れたいのですがJR東日本には東北も含まれますので、「JR東日本の山手線」の時はフィルターをスルーするようにしてやればOKです。
こちらのBotは私のTwitterにて動作確認が可能です。
以下、フィルターをかけていない時のツイートですが...
湘南新宿ライン(JR東日本)が遅延しました。
— ㅤ園児エル@プリカフェ9/2.10.16 (@ele_enji) 2017年9月5日
情報更新日時:2017/9/5 10:39