Google docsのスプレッドシート上に記載されたURLのいいね数を取得する

Google docsネタ第2弾 エントリ。

仕事でGoogle docsにメモられたURLにつけられたfacebookのいいね数をとりたいなと思ったので、以下の様なスクリプトgoogle docsで作成して解決。

スプレッドシートの「ツールスクリプトエディタ」で空のプロジェクトを使って以下の様なスクリプトを書きます。

function fb(uri) {
var cache = CacheService.getPublicCache();
var cacheKey = "fb:like:" + uri;
var likeNum;
likeNum = cache.get(cacheKey);
if (likeNum == null) {
var apiUrl = "http://api.facebook.com/method/fql.query?format=json&query=select+total_count+from+link_stat+where+url%3D%22";
apiUrl += uri;
apiUrl += "%22";
var responseJson = UrlFetchApp.fetch(apiUrl);
var items = Utilities.jsonParse(responseJson.getContentText());
likeNum = items[0].total_count;
if (isFinite(likeNum)) {
cache.put(cacheKey, likeNum, 60 * 60 * 8);
}
}
return likeNum;
}

味噌は使っているのがGoogle docsということで、同じ社内のネットワークから複数の人が同時にスプレッドシートを開いて閲覧することは当然あるわけでそうするとそのたびにfacebookAPIを叩くことになってAPIのレスポンスを得られなくなるので CacheService を使ってキャッシュさせているところですね。

とセルに書いてあげることで、いいね数が返ってくる様になります。

とても便利なのでぜひお試しを。

(Visited 26 times, 1 visits today)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です