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ということで、同じ社内のネットワークから複数の人が同時にスプレッドシートを開いて閲覧することは当然あるわけでそうするとそのたびにfacebookのAPIを叩くことになってAPIのレスポンスを得られなくなるので CacheService
を使ってキャッシュさせているところですね。
とセルに書いてあげることで、いいね数が返ってくる様になります。
とても便利なのでぜひお試しを。
(Visited 42 times, 1 visits today)