2006年05月09日
Google Calendar Data APIのお勉強
本日Google Calendar Data APIの仕様をちょっと勉強しました。
現時点で気が付いたことをあれこれ書いておきます。
まだ仕様を眺めただけであり、コードを書いて検証していないので、所々間違えているかもしれません。
- 送受信するデータの形式は基本的にAtom 1.0(RFC4287)です。
- Privateなカレンダーは、HTTPSでパスワード認証してauthorization token(文字列)を取得した後、HTTPとauthorization tokenを使ってイベントの取得/追加/変更/削除が行えます。認証トークンの有効期限については良く分かりませんでした。
- PrivateなカレンダーのPublicなイベントは、認証しないと取得できません。projectionをpublicにしてイベントを取得しようとするとステータスコード404が返ってきました。なんででしょうね?
- Publicなカレンダーは、認証せずにイベントの取得ができます。追加/変更/削除には認証が必要です。
- PublicなカレンダーのPrivateなイベントは、認証しないと取得できません。
- Privateなカレンダーは、magic-cookieと呼ばれる文字列が含まれたURLにアクセスすることにより、HTTPSによる認証を行わずに取得することができます。追加/変更/削除はできません。レガシーアプリケーション用でしょうかね。便利そうです。
- イベントの取得/追加/変更/削除はそれぞれHTTPのGET/POST/PUT/DELETEを使って行います。詳細はこちら。PUTやDELETEって一般的なHTTPプロキシは対応しているのかな。
- Calendar query parameters(start-minやstart-max)を使った範囲指定はmagic-cookieが含まれたURLを使う場合も有効です。
- Google Calendarは複数のMy Calendarを登録できますが、それぞれのMy CalendarのUserIDは異なります。最初のMy CalendarのUserIDはアカウントのメールアドレスですが、それ以外のMy CalendarのUserIDは、Googleが勝手にXXXXXXXXXXXXXXXXXXXXXXXXXX@group.calendar.google.comというUserIDを割り振ります。
- Other Calendarにも、Googleが勝手にXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX@import.calendar.google.comというUserIDを割り振ります。
- My CalendarやOther Calendarの一覧を取得する手段が分かりませんでした。アカウントを指定して全てのCalendarのUserID一覧を取得する手段が欲しいですね。これができればGoogle Calendarと表示内容を一致させたデスクトップアプリケーションが作れるのですが。
興味深いのは、Privateなイベントを認証なしに取得する手段を用意してくれているところ。
これのおかげで、Google Calendarをまったく考慮していない従来のRSSリーダーでも、Atom 1.0にさえ対応していればPrivateなイベントを取得することができます。便利ですねぇ。
もちろん、この手段を用意したために余計なセキュリティリスクを抱えこんでしまったとは思いますが、それでもこの方法を用意するあたり、Googleのセンスを感じます。
なお、このサイトで公開しているRSSリーダー Heimdallrは最新版(1.11alpha1)でもAtom 1.0に対応していませんのでGoogle CalendarのPrivateなイベントを取得することはできません。ひどいよ私。
私の手元にある未リリース版はAtom 1.0に対応していますので、次のリリースまでお待ち下さい。早めにリリースして欲しい方は要望を下さい。
投稿者 MASATO : 2006年05月09日 23:06
| トラックバック
> Heimdallr 1.11alpha1だと思ったのですが
確かにそのとおりでした。何か勘違いしていたようです。
alpha2は私のHDDの中にしかありません。記事の方も修正しておきます。
公開されている最新版は
Heimdallr 1.11alpha1だと思ったのですが
1.11alpha2はどちらに隠してあるのでしょうか?
幸いにもリポジトリはまだ壊れていません。VSSのリポジトリは以前一回壊れたことがあるのでちょっと不安ですけどね。
未リリース版があると知り安心しました。
リポジトリ壊れてソースが空中分解したり
カメラに魂吸い取られたり
開発に使用していたノートPCが盗まれていないと解って一安心です。