GoogleスプレットシートをRSSにする方法
GoogleアナリティクスのランキングをRSSにするため、スプレットシートをRSSに書き出しました。
Google アナリティクスのアドオンを使って、ランキングを作ります。
pubDateは公開日を入れたかったのですが、取得してなかったのでとりあえずデータ取得日を入れました。
このシートをRSSで出力します。
スプレットシートをRSSで公開する
以前は、「ウェブに公開」で、RSSでも公開ができたのですが、現在はありません。
参考にしたのはこちら。
Google Apps Scriptでお手軽RSS配信サービスを作る
http://www.infoscoop.org/blogjp/2014/11/27/gas-rss-service/
参考というか、ほぼそのままですが、メモ程度にまとめます。
jsファイルを作る
ツール→スクリプトエディタを起動します。
「無題のプロジェクト」をクリックして名前を変更します。
「RSS」とします。何でも大丈夫です。
デフォルトの「コード.gs」に書かれている以下のコードを消します。
1 2 3 |
function myFunction() { } |
以下のコードに置き換えます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
// Script-as-app template. var spreadSheet; var range; function doGet() { // スプレッドシート取得 spreadSheet = SpreadsheetApp.getActiveSpreadsheet(); // 20x20セルのデータを一度に取得する range = spreadSheet.getSheetByName('シート1').getRange(2, 1, 20, 20); // テンプレート呼び出し(forRss.html) var output = HtmlService.createTemplateFromFile('forRss'); var result= output.evaluate(); // コンテントタイプ指定 return ContentService.createTextOutput(result.getContent()) .setMimeType(ContentService.MimeType.XML); } // 行データ取得 function getRowData(rowNum){ return range.getValues()[rowNum]; } // シートのタイトル取得 function getSpreadSheetTitle(){ return spreadSheet.getName(); } // シートのリンク取得 function getSpreadSheerLink(){ return spreadSheet.getUrl(); } |
HTMLファイルを作る
スプレットエディタのファイル→新規作成 から、HTML ファイルを選びます。
ファイル名は「forRss」とします。
デフォルトで記述されている以下のコードを削除します。
1 2 3 4 5 6 7 8 9 |
<!DOCTYPE html> <html> <head> <base target="_top"> </head> <body> </body> </html> |
以下のコードに置き換えます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> <title><?= getSpreadSheetTitle() ?></title> <link><?= getSpreadSheerLink() ?></link> <description /> <? for(var i=0;i<10;i++){ if(!getRowData(i)[1]) continue; ?> <item> <title><?= getRowData(i)[2] ?></title> <link><?= getRowData(i)[1] ?></link> <pubDate><?= getRowData(i)[3] ?></pubDate> <dc:creator></dc:creator> <category /> <comments><?= getRowData(i)[0] ?></comments> </item> <? } ?> </channel> </rss> |
</item>の中は適宜変更してください。順位は、使わない「comments」に入れました。
RSSで公開する
forRss.htmlを公開します。
公開→ウェブアプリケーションとして導入 を選択します。
プロジェクトバージョンは新規作成のままで、次のユーザーとしてアプリケーションを実行は「自分」、アプリケーションにアクセスできるユーザーは対象を選択して「導入」します。
アラートが表示されるので承認を押します。アカウントを選択します。
「このアプリは確認されていません」とアラートが表示される場合があります。
このアプリやサイトは Google によって審査されていません。作成したデベロッパーの身元など詳細が確認されていません。
アカウントを安全な状態に保つため、この警告が表示されるアプリやサイトには、権限を付与しないでください。
とのことですが、Googleのアプリですし、きっと大丈夫だろうと判断し、「詳細」をクリックした後、「RSS(安全ではないページ)に移動」を選択します(自己責任で)。
さらに、「スコープをリクエストしています」と許可を求める画面になるので、「許可」を選択します。
導入完了です。
RSSページを確認する
導入されたウェブアプリケーションのURLを確認します。
RSSフィードができました。
LEAVE A REPLY