太陽がまぶしかったから

C'etait a cause du soleil.

Googleスプレッドシートで指定URLのはてなブックマーク数を取得する関数

f:id:bulldra:20150802100831j:plain

はてなブックマーク数を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からの実行も可能なので、どんどん活用していきたい。

How Google Works (ハウ・グーグル・ワークス)  ―私たちの働き方とマネジメント

How Google Works (ハウ・グーグル・ワークス) ―私たちの働き方とマネジメント

  • 作者: エリック・シュミット,ジョナサン・ローゼンバーグ,アラン・イーグル,ラリー・ペイジ,土方奈美
  • 出版社/メーカー: 日本経済新聞出版社
  • 発売日: 2014/10/09
  • メディア: 単行本
  • この商品を含むブログ (15件) を見る

関連記事