2010年2月17日水曜日

Google Data APIを使ってスプレッドシートをいじってみる

さてさて、本職の方が半年ほど、
お、今日は日付が変わる前に帰れた。ラッキー
てな感じだったので、Push It!の方もバグが出ない限りはあまりいじれてなかったのだが、ようやく本職も落ち着いてきたので、やり残してたことのいくつかに手を付けたいと思う。

第一弾。 付箋紙の変更履歴をGoogle Docsのスプレッドシートに残してみよう!

ということで、まずはGData APIをまさぐる。
(まず既知のバグっぽい動きをなんとかしろとかいう話もあるがそれはこっちに置いといて)

ふむ・・・Google Docsをいじるためには、Google Documents List Data APIを使えばいいわけね?おっけおっけ。認証も通るようになったし、次はスプレッドシートにワークシートを追加だ・・・ってそんなAPIなくね?
・・・ないね?ないよね?


どーすんだー、と思ってたら、Google Spreadsheets Data APIというものがあった。
なるほど、さっきのはあくまでドキュメントのリストを操作するためのAPIであって、スプレッドシートをいじるのはこっちなのね?解決。

・・・どぅええ~?!

Doc Listの方で認証通したのに、また認証を求められるんですけど・・・。どっちもGoogle Docsへのアクセス許可じゃないんか~い!

というような紆余曲折がありつつ、徐々に前に進んでます。

なのですが、ドキュメント類があまりにも充実してなさすぎで頭にくる。
GData APIはAtom準拠らしいんで本当はURIを自前で構築してみたり、返ってきた値がXMLなんでそれを解析してみたり面倒な作業が必要なのだが、そこはそれ。各種言語用のライブラリが用意されているので、いかにもその言語のライブラリであるかのようにアクセスできるようにはなっている。
のだが、そのライブラリのリファレンスがない(と思う)のだ
あるのはDeveloper's Guideっていう、まあ一連の操作を順を追って説明していく形のもの。網羅的でもなんでもない。
(あとプロトコルのリファレンスはある。がそれを見て使えるくらいならそもそもライブラリなど使っていない)。

どんなクラスが、関数が、関数の引数が、クラス変数があってどう使うか、ってことは本来リファレンスに書いてあるべきだと思うが、それがない。
ただソースコードは公開されているので(つかPythonだと公開せざるを得ないのだが)、それをリファレンスとして使うことができないでも、、、ない。むしろDeveloper's Guideなどでもソースへのリンクが張られてたりするところを見ると、Googleとしては「ソースがリファレンスである」とでも言いたげである。まじですか・・・。

ということで、本当に亀の歩みのようにゆっくりと前に進んでます・・・。