Google Apps Scriptを使って運行状況をメールで知らせる

Pocket

電車の運行状況をメールで知らせるサービスがあるそうですが、私はそれを知らず、PHPで自作していました。
PHPを使うのでサーバがないと使えません。
しかし、Google Apps Scriptを使うと誰でも使えることに気付き、作ってみました。
京王線の運行状況を知らせる方法です。
keio

使い方

  1. Googleドライブでスプレッドシートを新規に作成します。
  2. メニューの ツール - スクリプトエディタ で空のプロジェクトを作ります。
  3. 下のコードを貼り付けます。{メールアドレス}を自分のメールアドレスに変えます。
  4. メニューの リソース - 現在のプロジェクトのトリガー でトリガーを設定します。私は「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);
  }
}

説明

Google Apps Scriptの使い方については「Google Apps Scriptでメール送信」を参考にしてください。

スクリプトを実行すると、京王線の運行状況のページから情報を取得して、スプレッドシートに貼り付けます。
次にスクリプトを実行すると、また情報を取得して、スプレッドシートの情報と比較します。
異なるときは運行状況が変わったということなので、それをメールで知らせます。

「UrlFetchApp.fetch(url)」でウェブページの内容を取得します。
「result.getContentText("shift-jis")」でエンコードをシフトJISからUTF8に変換します。Google Apps ScriptはUTF8を使いますが、元のページがシフトJISなので変換する必要があります。

[ 2015年6月7日 | カテゴリー: デジタル | タグ: , , ]

« | »

コメント

  1. […] 以前、「Google Apps Scriptを使って運行状況をメールで知らせる」という記事を書きましたが、同じ仕組みを使って、今回はプロ野球の試合状況をメールで知らせる方法を紹介します。 […]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報