めもりーくりーなー Windowsのメモリーをお掃除するソフト。 めもくりスキンで、見た目をカスタマイズ可能です。
 
PCソフト 便利なソフトを中心に、100本近くを公開。
 
Webサービス ちょっと変わった楽しいサービスを多数公開。
マンガで分かるJavaScriptプログラミング講座 マンガでJavaScriptの基本から応用を学べます。 →書籍版
 
マンガで分かる Java入門講座 第1部完成。
PuzzleAndGame.com Webブラウザで遊べるパズルやゲームのサイト。
 
猫がえし Army Defense 2 Slide Reversi 他…
Army & Maiden AndroidとPCとアプレットで動作可能なリアルタイム・ウォー・シミュレーション・ゲーム。 →PCAndroidブログ
 
Exリバーシ 初期配置付き特殊盤面のリバーシ。 →Androidブラウザiアプリ
マンガPG PG/IT/息抜きマンガが2000ページ以上。
 
マンガPG用語辞典 創活ノート 猫プログラミング 4コマ番猫クロクロ 他…
 
読み物
映画感想他 約800件。
大人の社会科見学他 約30件。
Android Dev Android開発の情報やメモ。 →日記記事 Androidアプリページ
JavaScriptライブラリ
Web AI 人工無脳的動作を実現。
crocro.jscam Webカメラの画像を取得。
 

「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件 (全て見る)

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

弊社オンライン販売店。ゲームやソフト、電子書籍の販売。
プログラマのためのコードパズル〜JavaScriptで挑むコードゴルフとアルゴリズム
コードゴルフやアルゴリズム問題、その解説、関連知識の紹介を行った本です。
詳細ページ
HTML5&JavaScript本格ゲームプログラミング
ライブラリ自作からはじめるブラウザゲーム開発。「タワーディフェンス」を作ります。
詳細ページ
マンガでわかるJavaScript
マンガと解説で学べるJavaScriptのプログラム参考書。
詳細ページ
マンガでわかるAndroidプログラミング 第2版
マンガと解説で学べるAndroidプログラミング参考書2013年版。
詳細ページ
マンガでわかるJavaプログラミング
マンガと解説で学べるJavaのプログラム参考書。
詳細ページ

Webアプリ

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


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