先月半ばかそこらにリリースされたGoogle Visualization API。
スプレッドシート上のデータをグラフやGoogleMapsなどと融合させて新しいコンテンツにすることができます。
しかし、僕が注目したのはスプレッドシートに対してクエリを投げてデータを取得することができること。
正直にいうと興奮しました。これはすごいと。

早速サンプルを制作。下記サイトを参考にしました。
Google Visualization APIを早速使ってみた
Google Spreadsheets を簡易 SQL DB に! 

手順としては、

  1. DBとなるスプレッドシートを公開設定にする。サンプルデータはこれ
  2. Google APIをインポート。google.load(”visualization”,”1″) でAPIを読み込み。
  3. データソースURL(この呼び方は正しいのかな?)を挿入。ここポイント。

上記の記述が間違っていたために、僕は何度もGoogleに蹴られました。
ZDNetBuilderを参考にすると、確実に失敗します。重要な記述が足りないのです。
WebOS Goodiesのサイトを読んで間違いに気付きました。本当に助かりました。
肝心のポイントは、
pub?key=~ -> tq?key=~ に変更し、
pub=1 をどこかに入れる。これは、公開取得するって意味だそうです。これがないとエラーで蹴られます。
gid={シートNo} これで別のシートを読み込めます。
http://spreadsheets.google.com/tq?key=pMKJQa8xVn_HWXalaI-gVSQ&gid=0&pub=1
上記リンクでJSONが表示されれば成功です。

3.あとは頑張ればなんとかなる!
クエリを送信し、レスポンスを受け取ったら、それをループやら何やらで回して、データをHTML化。
これで無事表示されるはず。

サンプルプログラム(店舗一覧)

ドキュメントを読むと、取得系のクエリはほとんどいけますね。
ただし、公開スプレッドシートの特性上、直接URLを叩けば全データが覗かれてしまいます。
なので使える用途といったら、全てが公開されても問題ないものに限られると思います。
例えば既に電話帳に載っている店舗情報や、知られても問題ない商品簿など。

今まではバックエンドのCGIやPHPが必要な処理が、サーバーサイド技術なしで使えるというのは、非常に使い勝手が良いです。
しかもデータ管理が一般サラリーマンに馴染みの深いエクセルなのでなおさら。

うまく動きはしましたが、このサンプルプログラムだと表示にロスがあります。
なので次回はこの改善に挑みます。

Leave a Reply