前にGoogle SpreadsheetとCloud Functionsでランダムに出力するオミクジ的なサイトを作るというエントリを書いた。
Google App ScriptでContentService.createTextOutput()
を使って値を出力し、Cloud FunctionsでHTMLに加工するというものだが、HtmlService.createHtmlOutput()
でHTMLを直接生成するという手もある。
この方法、どういうわけか「このアプリケーションは、Google ではなく、別のユーザーによって作成されたものです。」という文言が出てしまって使いにくいが、個人用に使うぐらいだったらいいかな。前回同様、スクリプトエディタから公開を選べば実行できる。
function doGet(){
var spreadsheet = SpreadsheetApp.openById('{スプレッドシートのID}');
var sheet = spreadsheet.getSheetByName('{シート名}');
var lastRow = sheet.getLastRow();
var rand = Math.floor( Math.random() * lastRow ) + 1;
var url = sheet.getRange(rand,1).getValue();
var title = URLtoTitle(url);
var content = '<h1><a href="'+url+'" target="_top">'+title+'</a></h1>';
return HtmlService.createHtmlOutput(content);
}