GoogleスプレッドシートをRSSにする方法

2017 年 11 月 28 日

GoogleアナリティクスのランキングをRSSにするため、スプレッドシートをRSSに書き出しました。

Google アナリティクスのアドオンを使って、ランキングを作ります。

pubDateは公開日を入れたかったのですが、取得してなかったのでとりあえずデータ取得日を入れました。

このシートをRSSで出力します。

スプレットシートをRSSで公開する

以前は、「ウェブに公開」で、RSSでも公開ができたのですが、現在はありません。

参考にしたのはこちら。
Google Apps Scriptでお手軽RSS配信サービスを作る
http://www.infoscoop.org/blogjp/2014/11/27/gas-rss-service/

参考というか、ほぼそのままですが、メモ程度にまとめます。※上記ページは無くなってしまったようです。メモしててよかった。

jsファイルを作る

拡張機能→Apps Scriptを起動します。

「無題のプロジェクト」をクリックして名前を変更します。

 

「RSS」とします。何でも大丈夫です。

デフォルトの「コード.gs」に書かれている以下のコードを消します。

function myFunction() {
  
}

以下のコードに置き換えます。

// 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」とします。

デフォルトで記述されている以下のコードを削除します。

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    
  </body>
</html>


以下のコードに置き換えます。

<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を公開します。

htmlを選択した状態で「デプロイ」→「新しいデプロイ」を選択します。

ウェブアプリを選択します。

必要な項目を入力/選択してデプロイします。

承認画面で承認します。

デプロイが作成されます。ウェブアプリのURLで作成したRSSフィードを確認してください。

完成です。

クラシックエディタでの公開方法

公開→ウェブアプリケーションとして導入 を選択します。

プロジェクトバージョンは新規作成のままで、次のユーザーとしてアプリケーションを実行は「自分」、アプリケーションにアクセスできるユーザーは対象を選択して「導入」します。

アラートが表示されるので承認を押します。アカウントを選択します。

「このアプリは確認されていません」とアラートが表示される場合があります。

このアプリやサイトは Google によって審査されていません。作成したデベロッパーの身元など詳細が確認されていません。
アカウントを安全な状態に保つため、この警告が表示されるアプリやサイトには、権限を付与しないでください。

とのことですが、Googleのアプリですし、きっと大丈夫だろうと判断し、「詳細」をクリックした後、「RSS(安全ではないページ)に移動」を選択します(自己責任で)。

さらに、「スコープをリクエストしています」と許可を求める画面になるので、「許可」を選択します。

導入完了です。

RSSページを確認する

導入されたウェブアプリケーションのURLを確認します。

RSSフィードができました。

★コネタ

Posted by chinacky★