Google Driveを使って天気予報をメールする
2015/11/02
クジラ飛行机「仕事に役立つJavaScript入門」のGoogle Driveのスクリプトを使って毎朝の天気情報をメールしようを参考にして天気予報を取得します
Google Driveのスクリプト機能を利用して、毎朝、その日の天気や気温の予報をメールするように簡単なプログラムを作ってみましょう。Googleアカウントを持っている人なら、ちょっとした手順で設定できます。
コードの入力
Google Driveを開いて 新規→その他→Google Apps Script→空のスクリプト をクリックします。「無題のプロジェクト」が立ち上がります。表示されているコードは消しておきます。
ここのコードを参考に記述します。
// --- 設定する項目 --- // 天気のRSSを指定 var URI_RSS = "http://rss.weather.yahoo.co.jp/rss/days/5010.xml"; // メールの送信先とタイトルの指定 var MAIL_TO = "hoge@gmail.com"; var MAIL_TITLE = "[天気予報]"; // --- プログラム --- // メール送信関数 function checkWeatherAndMail() { // データを取得 var rss = UrlFetchApp.fetch(URI_RSS); if (rss.getResponseCode() != 200) { Logger.log("RSSの取得に失敗しました。"); return; } // XMLをパースする var txt = rss.getContentText(); var doc = XmlService.parse(txt); var item_list = doc.getRootElement().getChild("channel").getChildren("item"); // 各タグを巡回 var res = ""; var today = ""; var today_link = ""; for (var i in item_list) { var item = item_list[i]; var title = item.getChild("title").getText(); var desc = item.getChild("description").getText(); var link = item.getChild("link").getText(); res += "* " + title + "\n"; if (today == "") { today = desc; today_link = link; } } // メール送信 var body = res + "(詳細) " + today_link + "\n"; MailApp.sendEmail(MAIL_TO, MAIL_TITLE + " " + today, body); Logger.log(body); }
コードの実行
▶(実行)をクリックします。「承認が必要です This app needs authorization to run.」と聞かれるので「続行」をクリックします。「first script が次の許可をリクエストしています」と聞かれるので「承認する」をクリックします。
実行の結果
自分のGmailに「[天気予報] ** - **℃/**℃」という題名のメールが届きます。本文には1周間の天気予報、最高最低気温、注意報警報が書かれています。
それからGoogle Driveを見るとスクリプト「天気予報をメールで送る」が保存されています。
他の方法を試してみる
静岡県
提供RSSの東海地方→静岡県のリンクアドレスをコピーします。3行目をに貼り付けます。
var URI_RSS = "http://rss.weather.yahoo.co.jp/rss/days/22.xml";
実行すると静岡県の各地域の今日明日の最高最低気温、注意報警報が書かれています。
県庁所在地
上と同様に3行目を変更します。一番最初に行ったコードと同じになります。静岡県の県庁所在地静岡市は中部なので、中部の天気用法が届きます。
静岡
リンクアドレスが県庁所在地と同じなので、同じ結果が出ます。
網代
var URI_RSS = "http://rss.weather.yahoo.co.jp/rss/days/5020.xml";
実行すると伊豆(網代)の各地域の今日明日の最高最低気温、注意報警報が書かれています。
三島
var URI_RSS = "http://rss.weather.yahoo.co.jp/rss/days/5030.xml";
実行すると東部(三島)の各地域の今日明日の最高最低気温、注意報警報が書かれています。
浜松
var URI_RSS = "http://rss.weather.yahoo.co.jp/rss/days/5040.xml";
実行すると西部(浜松)の各地域の今日明日の最高最低気温、注意報警報が書かれています。
警報・注意報
var URI_RSS = "http://rss.weather.yahoo.co.jp/rss/warn/22.xml";
実行すると県内各地域の警報・注意報の有無のみわかります。他の地域もそうですが、有無でなくて内容を知りたいところですが仕方ないですね。
定期的に実行する
毎朝朝天気予報が見れるように設定してみます。
リソース→すべてのトリガー をクリックします。「トリガーが設定されていません。今すぐ追加するにはここをクリックしてください。」
と表示されるのでリンクをクリックします。実行を「checkWeatherAndMail」、イベントを「時間主導型」「日タイマー」「午前 6時〜7時」にして「保存」をクリックします。
これで毎朝天気予報が届きます。また時タイマーにして数時間おきに送信でも良いかもしれません。