GoogleAppsScript で RSS を扱うメモ
こちらのサイトにて公開されていたものを改良して試行錯誤中。同一シート内に複数のフィード URL を書いておいて一括で表示させたい。とりあえずコピペして同じ処理を繰り返すようにした。
function getRss() { var ss = SpreadsheetApp.getActiveSheet(); var rssUrl = ss.getRange("A3").getValue(); arguments.callee var advancedArgs = { headers: {"User-Agent":"UrlFetchApp(id="+Utilities.base64Encode(Utilities.computeHmacSha256Signature(Session.getUser().getUserLoginId(),ss.getName()))+")"} }; var rssText = UrlFetchApp.fetch(rssUrl,advancedArgs).getContentText(); var doc = Xml.parse(rssText); var items = doc.getElement().getElement("channel").getElements("item"); var titles = new Array(); var item; for( idx in items ){ entryDate = items[idx].getElement("pubDate").getText(); entryTitle = items[idx].getElement("title").getText(); titles.push( [entryDate, entryTitle] ); } var range = ss.getRange(5,1,titles.length,2); //getRange()の引数は(最初の行,最初の列,行数,列数) range.setValues(titles); ///////////////////////////////////////////////////////////////// var rssUrl = ss.getRange("C3").getValue(); arguments.callee var advancedArgs = { headers: {"User-Agent":"UrlFetchApp(id="+Utilities.base64Encode(Utilities.computeHmacSha256Signature(Session.getUser().getUserLoginId(),ss.getName()))+")"} }; var rssText = UrlFetchApp.fetch(rssUrl,advancedArgs).getContentText(); var doc = Xml.parse(rssText); var items = doc.getElement().getElement("channel").getElements("item"); var titles = new Array(); var item; for( idx in items ){ entryDate = items[idx].getElement("pubDate").getText(); entryTitle = items[idx].getElement("title").getText(); titles.push( [entryDate, entryTitle] ); } var range = ss.getRange(5,3,titles.length,2); //getRange()の引数は(最初の行,最初の列,行数,列数) range.setValues(titles); }
あとで調べる予定。