めもりーくりーなー Winのメモリーをお掃除するソフト
 
小説推敲補助ソフト「Novel Supporter
 
PCソフト 便利なソフトを100本近く公開
 
Webサービス 便利で楽しいサービス多数
『ハッカー探偵 鹿敷堂桂馬』シリーズ
1. 裏切りのプログラム 2. 顔貌売人
PuzzleAndGame.com ブラウザで遊べるパズルやゲーム
 
同人活動
るてんのお部屋 コミケなどで活動(DL販売

クロクロ ショップ 本、ゲーム、同人誌他を販売
 

クロクロ ツールズ 便利なWebアプリを多数収録
読み物
映画感想他 約800件
大人の社会科見学他 約30件
 

「Google Feed API」代替として「Googleスプレッドシート」を使う方法

no link
2015/12/02(水) 15:38:01
 2015年12月2日に「Google Feed API」が「This API is no longer available.」になり、RSSをJSONP形式で簡単に取得することができなくなりました。

 そこで、「Googleスプレッドシート」を使って、RSSを定期取得して、JSONPで吐き出す実験をして、上手くいきましたので、その方法をまとめておきます。

●スプレッドシートの作成

・「Googleドライブ」で「Googleスプレッドシート」を作成する。
・スプレッドシートのタイトルを入力する。

●スクリプトの入力と初回実行

・メニューの[ツール]→[スクリプトエディタ]で、スクリプトエディタを開く。
・以下のコードを入力する。

/*
* プロジェクト名「rss_hatena」
*
* 「はてブ 新着エントリー」からRSSを取得
* 参考:
* gas - Google Apps ScriptでTwitter botを作ってみた - Qiita
* http://qiita.com/abe-perorist/items/2cedc0f577b4f10b4ccb
*/
function myFunction() {
var url = "http://b.hatena.ne.jp/entrylist?sort=hot&threshold=&mode=rss";
clear();
scraiping(url);
}

function clear() {
// シートを扱う準備
var myActiveSpreadSheet = SpreadsheetApp.getActiveSpreadsheet();
var myActiveSheet = myActiveSpreadSheet.getSheets()[0];

// 取得したurlを全てクリアする
myActiveSheet.clear();
}

function scraiping(url) {
// シートを扱う準備
var myActiveSpreadSheet = SpreadsheetApp.getActiveSpreadsheet();
var myActiveSheet = myActiveSpreadSheet.getSheets()[0];

// RSSを取得
var response = UrlFetchApp.fetch(url);
var myRegexp = /<item [^>]+>([\s\S]*?)<\/item>/gi;
var match = response.getContentText().match(myRegexp);

// タイトルとURLを抽出してドライブシートに貼り付け
for (var i in match) {
var txt = match[i];
var ttl = "";
var url = "";
try {
ttl = txt.match(/<title>([\s\S]+?)<\/title>/)[1];
url = txt.match(/rdf:about="(.+?)"/)[1];
} catch(e) {}
myActiveSheet.getRange(myActiveSheet.getLastRow()+1, 1).setValue(ttl);
myActiveSheet.getRange(myActiveSheet.getLastRow(), 2).setValue(url);
}
}

・[Ctrl+S]で保存。プロジェクト名は「rss_hatena」にして[OK]ボタンを押す。
・[右三角](実行)ボタンを押す。
・「承認が必要です」とダイアログが出るので[続行]ボタンを押す。
・[許可]ボタンを押す。(外部との連携のために、最初の1回は承認が必要)

●スクリプトの定期実行

・「時計マーク」(現在のプロジェクトのトリガー)を押す。
・「現在のプロジェクトのトリガー」と出るので、「トリガーが設定されていません。今すぐ追加するにはここをクリックしてください。」リンクを押す。
・[実行]は「myFunction」、[イベント]は[時間主導型][分タイマー][30分ごと]を選ぶ。
・[保存]ボタンを押す。

●スプレッドシートをJSON形式で外部に公開

・スプレッドシートのページに戻る。
・メニューの[ファイル]→[ウェブに公開]を押す。
・「ウェブに公開」ダイアログが表示されるので、[公開]ボタンを押す。
・リンクが選択状態になって表示されるのでコピーする。
・「https://docs.google.com/spreadsheets/d/[key]/pubhtml」の「[key]」の部分をコピーする。
・「https://spreadsheets.google.com/feeds/cells/[key]/od6/public/values?alt=json」の「[key]」の部分をに貼り付ける。
・このURLがJSON形式(JSONP対応)の外部URLになる。

●jQueryで読み込む

・以下のコードを実行すれば、「[{title: "hoge", link: "hoge"}, {…}, {…}, …]」形式の「dArr」を得ることができる。

var url = "上記で作成したURL";
$.getJSON(url, function(data) {
try {
var dArr = [];
$.each(data.feed.entry, function(i, x) {
var pos = i / 2 | 0;
if (i % 2 == 0) {
dArr[pos] = {};
dArr[pos].title = x.content.$t;
} else {
dArr[pos].link = x.content.$t;
}
});
} catch(e) {
console.log("rss load", e);
}
});

●実行サンプル

Routine News

●参考

GoogleスプレッドシートのデータをJSONで取得してみた | アライドアーキテクツのクリエイターブログ
gas - Google Apps ScriptでTwitter botを作ってみた - Qiita

最新20件 (全て見る)

柳井が執筆した本や商品 他

顔貌売人
ハッカー探偵 鹿敷堂桂馬

シリーズ第2弾。拙作小説が、文藝春秋より8月7日に発売されます。
詳細ページ
裏切りのプログラム
ハッカー探偵 鹿敷堂桂馬

松本清張賞の最終候補に残った拙作小説が、文藝春秋より8月27日に発売されます。
詳細ページ
マンガでわかるJavaScript
マンガと解説で学べるJavaScriptのプログラム参考書。
詳細ページ
プログラマのためのコードパズル~JavaScriptで挑むコードゴルフとアルゴリズム
コードゴルフやアルゴリズム問題、その解説、関連知識の紹介を行った本です。
詳細ページ

Webアプリ

もふもふ検索
もふもふした可愛い画像を検索する連想検索エンジン。
箱人形マンガ(Box Comic)
超ローポリの人形やフキダシなどで、マンガを作るWebアプリ。
スクリーンセーバー「なう」
Twitterスクリーンセーバーを作れるWebサービス。
全自動4コマ
インターネット上のデータを検索して、自動で4コママンガを作成するサイト。
全自動百科事典
名前を元に、自動で百科事典風ページを生成するサイト。
新刊・新作カレンダー
本・ゲーム・DVD・CDの新作情報をカレンダー形式で公開。
全自動似顔絵
名前を元に、自動で似顔絵を生成するサイト。
全自動迷路
画像を元に、自動で迷路を作るWebアプリ。
EXリバーシ
初期配置付き特殊盤面のリバーシ。100盤面以上あり。自由にステージを作成可能。
ワールド マップ自動生成
RPGなどのランダムなワールドマップを自動生成するWebアプリ。
その他 まとめ
多数のWebサービスを開発しています。

ゲーム

PuzzleAndGame.com
ブラウザで遊べるパズルやゲームのサイト。
猫がえし
猫盤面の変形リバーシ。
Army Defense 2
ファンタジー世界の自由配置型タワーディフェンス。
Slide Reversi
マスをスライドして消していく、リバーシ風パズル。
Army & Maiden
AndroidやPCで遊べるRTS。 → PC/Android/ブログ
EXリバーシ
特殊盤面を多数収録したリバーシ。Android版。
EXリバーシ
特殊盤面を100盤面以上収録したリバーシ。ステージ作成可能。Javaアプレット製。

サイト目次

PCソフト

開発

携帯・スマフォ

記事/マンガ

アナログ・ゲーム

書き物

柳井の同人活動

 


Cronus Crown(クロノス・クラウン)のトップページに戻る
(c)2002-2017 Cronus Crown (c)1997-2017 Masakazu Yanai
このWebPageに関するご意見・お問い合わせは
サイト情報 - 弊社への連絡 -
までお願いします。