はてなブックマーク数をGoogleスプレッドシートで管理したい
以前に、Googleスプレッドシートにある「GOOGLETRANSLATE」関数を用いて多言語対訳表を作ったのだけど、これはGoogle翻訳のAPIをスプレッドシート上で実行することで実現されている。
開かれたWebサービスにおいては、特定のURLを入力することでJSON形式のデータが返ってきたり、JSONPを利用したコールバック関数で処理を行うためのAPIが提供されている。例えば、指定したURLのはてなブックマーク数を取得するためのAPI仕様は以下の通りである。
http://api.b.st-hatena.com/entry.count?url=http%3A%2F%2Fwww.hatena.ne.jp%2F
はてなブックマーク件数取得API - Hatena Developer Center
GoogleスプレッドシートからはてなブックマークAPIを実行
このようなAPIが公開されている場合、Googleスプレッドシートからは「IMPORTDATA」関数を用いることで、他のサーバー上の値を取得することができる。このため、以下のような関数を作成することで「B3」セルにあるURLのはてなブックマーク数が表示される。
=iferror(if(B3 <> "",importdata("http://api.b.st-hatena.com/entry.count?url=" & B3),0),0)
URLが入力されていなかったり、指定URLにブックマークがされていない場合は値が取得できずにエラーとなるため、「iferror」や「if」を用いて0に変換している。
RSSから直近の記事URLと記事名を取得する
はてなブックマークを表示させたいURLの取得元は何でもよいのだけど、RSSから取得したい場合には「IMPORTFEED」が利用できる。結果が7行あると勝手に7行分のセルに展開してくれるのは便利なこともあれば、面倒になることもある。
=IMPORTFEED(RSSURL,"items url",false,7)
2つ目の引数を「items title」にすればタイトルリストが取得できる。
直近エントリのはてなブックマーク数を取得するシート
ここまでで、作成したはてなブックマーク数取得関数とフィードURL取得関数を組み合わせることで、指定ブログの直近記事におけるブックマーク数を取得する『はてなブックマーク数取得シート - Google スプレッドシート』のようなスプレッドシートが作成できる。
Googleスプレッドシート上からはてなブックマーク数取得関数が実行できると、例えば、Google Search Consoleにある被リンクURLリストから影響の大きそうなURLを抽出したり、複数ドメインにおける集計処理などのアドホックな集計が捗る。はてなブックマーク数に限らずとも「IMPORTDATA」関数は応用できることだし、Chromebookからの実行も可能なので、どんどん活用していきたい。