Google Apps Scriptで電車の運行状況をSlackに通知

2019-03-01

必要な情報は、タイムリーにチェックしたいですよね。前回は、Google Apps Scriptを使って、スプレッドシートと「Slack」を連携し、必要な情報をタイムリーに通知する方法を紹介しました。

今回は、IMPORTXML関数を活用して、電車の運行状況をSlackに通知する方法を紹介します。

ポイント 電車の運行状況を毎日チェックしたい

年に数回起きる電車の大幅な遅れ・運休。先日も私が使用している路線で通勤時間帯に電車が長時間に渡って運休ということがありました。

電車通勤をしている方であれば、電車の運行状況は抑えておきたいもの。

専用のアプリもあるようですが、そのためだけにアプリを入れるのもメンドウということで、電車の運行状況を朝夕の1日2回通知してくれる仕組みを作ってみました。

ポイント 必要な路線の運行状況を取得

今回、データの取得元として、こちらのページを使用しました。
[blogcard url=”https://transit.yahoo.co.jp/traininfo/top”]
使用している路線のページに行き、こちらの部分のデータを抽出します。

使用するのは、以前紹介した「IMPORTXML関数」です。
[blogcard url=”http://e-shikumi-labo.com/26012019/2498.html”]

こちらの記事で紹介した方法を参考にxPathを取得します。
このようにスプレッドシート上に電車の運行状況を取得することができました。

ポイント Slackに通知

あとは、前回作成した通知スクリプトでメッセージの内容をこのセルの内容にします。
[blogcard url=”http://e-shikumi-labo.com/28022019/2851.html”]

通知内容(変数名:honbun)を次の通り変更します。

function unkou() {
  var sheet= SpreadsheetApp.getActive().getSheetByName('通知データ');  //シート名     
  var honbun="運行状況"+"\n"+sheet.getRange(3,1).getValue()+ sheet.getRange(3,2).getValue()

 // payload=データ本体のこと  Slackに送信(post)する内容
  var payload  = {
    'text'      :  honbun,    // 変数のため''はいらない nameは利用しない場合消す
    'channel'   : '@ユーザ名',   //投稿するチャンネル名
    'icon_emoji': ':hedgehog:',   //botのアイコン 
  };
 
  // Slackに送信
  var options = {
    'method'      : 'post',
    'contentType' : 'application/json',
    'payload'     : JSON.stringify(payload), // jsの値をJSON文字列に変換
  };
 
  var url = ' Incoming WebHooksで取得したURL ‘;
  UrlFetchApp.fetch(url, options);
}


ポイント 定期的に通知

あとは、このプログラムを朝・夕定期的に実行するだけです。
[blogcard url=”http://e-shikumi-labo.com/10022019/2649.html”]


↑↑
こんな感じで通知されます。

ポイント まとめ

今回は、これまでに紹介したIMPORTXML関数とSlackへの通知方法を組み合わせて、電車の運行状況を定期的に通知する方法を紹介しました。

運行状況に限らず、定期的に確認したい情報はいろいろあると思います。Googleスプレッドシートを使えば、欲しい情報「だけ」を欲しいタイミングで取得することが可能です。いろいろ工夫してみて下さい。

また、こんなデータを取得できないか?などありましたら、お気軽にお問い合わせ下さい。

Copyright(c) 2016 e-Shikumi-Labo All Rights Reserved.