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

2019-03-01

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

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

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

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

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

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

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

今回、データの取得元として、こちらのページを使用しました。

日本全国(北海道,東北,関東,中部,近畿,中国,四国,九州)で現在発生しているJR・新幹線・私鉄・地下鉄の運行情報や遅延情報、事故、運休、工事情報などを提供しています。

使用している路線のページに行き、こちらの部分のデータを抽出します。

使用するのは、以前紹介した「IMPORTXML関数」です。

当ラボでは、誰もが無料で使うことができるGoogleスプレッドシートを使って様々なツールを提供しています。このGoogleスプレッドシートには、ExcelにはないGoogle独自の便利な機能(関数)を持っています。今回は、そんな中でプログラム(スクリプト)不要でWeb上のデータを入手できる「IMPORTXML関数」を紹介します。 使い方今回は、ヨドバシ.comのこちらの商品の価格の取得を例にIMPORTXML関数を利用してみます。https://www.yodobashi.com/product/100000001002274011/この数式をスプレッドシートを開いて、適当なセルに入力すると=...

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

ポイント Slackに通知

あとは、前回作成した通知スクリプトでメッセージの内容をこのセルの内容にします。

必要な情報は、タイムリーにチェックしたいですよね。前回は、Google Apps Scriptを使って、スプレッドシートと「LINE」を連携し、必要な情報をタイムリーに通知する方法を紹介しました。今回は、Google Apps Scriptを使ってチャットアプリの一つ「Slack」に通知する方法を紹介します。 なぜSlack?チャットアプリとして、すでに「チャットワーク(ChatWork)」を使っていましたが、大きな不満が1つありました。それは、通知画面でメッセージの内容がわからないということ。チャットワークの通知は、「○○さんからメッセージが届きました...

通知内容(変数名: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);
}


ポイント 定期的に通知

あとは、このプログラムを朝・夕定期的に実行するだけです。

当ラボでは、誰もが無料で使うことができるGoogleスプレッドシートを使って様々なサイトから必要な情報の取得を仕組み化したツールを提供しています。連載で「IMPORTFEED関数」を活用したフォローセラーチェックツールの作り方を紹介してきました。このようなチェックツールは、定期的に更新・確認するものです。どうせなら、更新作業も自動化したいものです。そこで、今回は更新ボタンを毎日、自動で実行する方法を紹介します。 トリガー機能を使うGoogleスプレッドシートのプログラム(スクリプト)機能Google Apps Script(GAS)には...


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

ポイント まとめ

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

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

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

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