知識のアウトプットをするブログ

なんでもブログに書き記す

【GAS】RSSの更新を毎日確認してメールを送る

f:id:seisyo58:20181106142429j:plain
Google Apps Scriptで、毎日RSSフィードの更新を確認して、更新があればメールを送るプログラムを作成したので、ここに記しておく。

登録したRSS

きんどうの更新が知りたかったので、きんどうのRSSを登録した。
きんどう あなたのポチッを加速させるメディア

ソースコード

function RSSread() {
  var LIMIT_TIME = 24*60*60;//1日を秒に変換
  var NOW_UNIX_TIME = Math.floor((new Date().getTime())/1000);//現在時刻のUnixTime
  var URL = "https://kindou.info/feed";//取得したいRSSのURL
  
  var body = "";
  
  //URLから情報を取得
  var data = UrlFetchApp.fetch(URL);
  var xml = XmlService.parse(data.getContentText());
  var items = xml.getRootElement().getChildren('channel')[0].getChildren('item');
  
  //itemの数だけまわす
  items.forEach(function(item){
    var pubDate = new Date(item.getChild("pubDate").getText());
    var pubDateUnixTime = Math.floor(pubDate.getTime()/1000);
   //もしitemの配信時刻と現在時刻の差が24時間以内だったら 
 if(NOW_UNIX_TIME-pubDateUnixTime<LIMIT_TIME){
      var title = item.getChild("title").getText();
      var url = item.getChild("link").getText();
      //ここでメールに追記
      body += '<a href="'+url+'">'+title+'</a><br>';
    }
  });
  
  sendMail("<あなたのメールアドレス>","きんどうの更新がありました",body);
}

function sendMail(mailto,subject,body) {
  MailApp.sendEmail({
        to: mailto,
        subject: subject,
        htmlBody: body
  });
}

トリガーの設定

f:id:seisyo58:20181106141759j:plain
トリガーを上のように設定する

実行結果

f:id:seisyo58:20181106141845j:plain
実行した結果、きちんとメールが送信された。