スプレッドシートで取得する。
指定のURLの「ツイート数」「はてブ数」「いいね数」を取得します。
完成品のスプレッドシート。
スプレッドシートではJavaScriptが動かせるのでWebサイト同様URLに対してAPIからの値を格納しているだけです。
ねっ、簡単でしょ。
書き方
ツールにある「スクリプトエディタ」を立ち上げて、それぞれのシェア数を取得するコードを書きます。
コードはこちら
[javascript]
////////////////////////////////////
//いいね数を取得
////////////////////////////////////
function FbCount(url) {
var cache = CacheService.getPublicCache();
var cacheKey = "fb:like:" + url;
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 += url;
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;
}
////////////////////////////////////
//tweet数を取得
////////////////////////////////////
function Tweets(url) {
var jsondata = UrlFetchApp.fetch("http://urls.api.twitter.com/1/urls/count.json?url=" + url);
var object = Utilities.jsonParse(jsondata.getContentText());
return object.count;
}
////////////////////////////////////
//はてぶ数を取得
////////////////////////////////////
function Hatebu(url) {
var hatena_response = UrlFetchApp.fetch("http://b.hatena.ne.jp/entry/jsonlite/?url=" + url);
if (hatena_response != 'null')
{
return JSON.parse(hatena_response)['count'];
} else {
return 0;
}
}
[/javascript]
これでこの関数を実行させたセルに数字を取ることができますので
あとは実行させたいセルに関数を書き込みだけです。
- 【例】C列7行のセルにURLがある場合
-
- ツイート数を取得する場合
- =IF(ISBLANK(C7),"",Tweets(C7))
- はてぶ数を取得する場合
- =IF(ISBLANK(C7),"",hatebu(C7))
- いいね数を取得する場合
- =IF(ISBLANK(C7),"",FbCount(C7))
これで一つのURLに対してのシェア数を取得する条件が整いました。
RSSフィードを使って最新記事を一覧表示する
URL一つ一つ見るのも良いですが、用途としては直近の記事を見て比較する事が多いと思います。
記事が更新される度に、URLを追記していくのも良いですが、私はめんどくさがりなので記事一覧を作るのもプログラムに任せちゃいました。
- 【例】 B列3行のセルにRSSフィードのURLがあり、B列4行のセルに何件分取得するかの数字がある場合
- 記事タイトルの取得 =importfeed(B3,"items title",true,B4) 記事URLの取得 =importfeed(B3,"items url",true,B4)
もっと簡単に取得する方法(WordPress編)
WordPressを使っている場合はプラグインを使ってもっと簡単に取得出来ます。 SNS Count Cache このプラグインをいれるだけで下記5つのソーシャルシェア数が取れます。- Google+
- Hatebu
