Google Calendar Data APIで「予定の時間枠のみを表示」カレンダーのイベントが読み取れない

Google Calendar Data APIで、通常の共有設定がされているカレンダーのイベントは読み取れるが、「予定の時間枠のみを表示」共有設定がされているカレンダーのデータを読み取ろうとすると「does not have read privileges on the calendar google api」が返されて読めない。

感覚的に「予定の時間枠のみを表示」権限があるのだから、題名や内容は読み取れないにしても時間枠だけの結果が返ってきてもいいのでは?と思ったが、そうではなかった。クエリーのパラメータを調整すれば読み取れるようになるかな?とも思ったがそれも違った。

答えは、クエリーを作るときのProjectionを「full」ではなく「free-busy」にする事だった。

http://code.google.com/intl/ja/apis/calendar/data/2.0/reference.html#Projection

今までProjectionにfull以外の値を入れたことがなかったので、盲点だった。

普通のシステムではデータに対する権限は「読み取り」と「書込み」の2種類しかないことが多いので、「読み取り権限がありません」というメッセージを「データに対するどんな権限もありません」と(無意識に)理解してしまったのも間違いの元だった。

「読み取り」権限はなくても、「時間枠だけの読み取り権限」ならあるのだ。

Leave a Reply

Your email address will not be published. Required fields are marked *