Google Apps Scriptを使って運行状況をメールで知らせる
電車の運行状況をメールで知らせるサービスがあるそうですが、私はそれを知らず、PHPで自作していました。
PHPを使うのでサーバがないと使えません。
しかし、Google Apps Scriptを使うと誰でも使えることに気付き、作ってみました。
京王線の運行状況を知らせる方法です。
使い方
- Googleドライブでスプレッドシートを新規に作成します。
- メニューの ツール - スクリプトエディタ で空のプロジェクトを作ります。
- 下のコードを貼り付けます。{メールアドレス}を自分のメールアドレスに変えます。
- メニューの リソース - 現在のプロジェクトのトリガー でトリガーを設定します。私は「5分ごと」にしています。
コード
function myFunction() {
var url, mail, title;
var result, html, ms, info_new, sheet, info_old;
url = "http://www.keio.co.jp/unkou/unkou_pc.html";
mail = "{メールアドレス}";
title = "京王線運行状況";
//情報を取得
result = UrlFetchApp.fetch(url);
html = result.getContentText("shift-jis");
html = html.replace(/[\r\n]/g, "");
ms = html.match(/<p class="status">(.*?)<\/p>/);
info_new = ms[1].replace(/<.*?>/g, "");
//ログを取得
sheet = SpreadsheetApp.getActiveSheet();
info_old = sheet.getRange(1, 1)
.getValue();
if(info_new !== info_old) {
MailApp.sendEmail(mail, title, info_new);
sheet.getRange(1, 1)
.setValue(info_new);
}
}
var url, mail, title;
var result, html, ms, info_new, sheet, info_old;
url = "http://www.keio.co.jp/unkou/unkou_pc.html";
mail = "{メールアドレス}";
title = "京王線運行状況";
//情報を取得
result = UrlFetchApp.fetch(url);
html = result.getContentText("shift-jis");
html = html.replace(/[\r\n]/g, "");
ms = html.match(/<p class="status">(.*?)<\/p>/);
info_new = ms[1].replace(/<.*?>/g, "");
//ログを取得
sheet = SpreadsheetApp.getActiveSheet();
info_old = sheet.getRange(1, 1)
.getValue();
if(info_new !== info_old) {
MailApp.sendEmail(mail, title, info_new);
sheet.getRange(1, 1)
.setValue(info_new);
}
}
説明
Google Apps Scriptの使い方については「Google Apps Scriptでメール送信」を参考にしてください。
スクリプトを実行すると、京王線の運行状況のページから情報を取得して、スプレッドシートに貼り付けます。
次にスクリプトを実行すると、また情報を取得して、スプレッドシートの情報と比較します。
異なるときは運行状況が変わったということなので、それをメールで知らせます。
「UrlFetchApp.fetch(url)」でウェブページの内容を取得します。
「result.getContentText("shift-jis")」でエンコードをシフトJISからUTF8に変換します。Google Apps ScriptはUTF8を使いますが、元のページがシフトJISなので変換する必要があります。
[ 2015年6月7日 | カテゴリー: デジタル | タグ: Google , Google Apps Script , 電車 ]
« 宝華らあめん 立川店 | iPhoneを出荷状態にしてみた »
[…] 以前、「Google Apps Scriptを使って運行状況をメールで知らせる」という記事を書きましたが、同じ仕組みを使って、今回はプロ野球の試合状況をメールで知らせる方法を紹介します。 […]