All Articles

GASでRSSから更新情報を取得する

Google Apps script(GAS)を使って、サイトの更新情報を取得出来るようになったのでメモ。

コードはこんな感じ。

[highlight_javascript]//rss,xmlから読み取り
var xml = UrlFetchApp.fetch(“ここにrssを配布するURLを入力”).getContentText();
var document = XmlService.parse(xml);
var entries = document.getRootElement().getChildren(“channel”)[0].getChildren(“item”);

var title = entries[0].getChildText(“title”);
var link = entries[0].getChildText(“link”);
var pubDate = entries[0].getChildText(“pubDate”);

Logger.log(title);
Logger.log(link);
Logger.log(pubDate);[/highlight_javascript]

UrlFetchApp.fetch でサイトから情報を取得する。定期的に実行させるとたまにエラーが出るので、tryで囲んでおくと良いかも。

XmlService.parseでXML形式にする?(「パースする」と言うらしい)

getRootElement().getChildren(“channel”)[0].getChildren(“item”)でXMLの要素の階層を下っていくイメージ。

entries[0].getChildText(“欲しい要素”)で変数に情報を入れる。0は最新の投稿の番号。全ての投稿を取得したかったら、entries.lengthを使ってForかなんかを回す。

[highlight_javascript]

For( var i = 0; I < entries.length(); i ++){

}

[/highlight_javascript]

こんな感じになります。

このコードを応用して、ツイッターbotで最新の投稿をリンク出来るようになりました。

[第146話] ワンパンマン の更新がありました! #拡散希望 #ワンパンマン更新 https://t.co/SiQ6XeWaw3

— ワンパンマン更新通知bot (@UpdatePunch) February 23, 2019

今までHTMLから正規表現を使ってなんとかしようとしていました笑。

RSSを利用できるようになると色々活用できそうです。

参考にしたサイト→https://www.terakoya.work/gas-spreadsheet-get-xml-part1/