Google Calendar API v3に対応する(月間イベントを取得して表示)

あるバーのスケジュール表をGoogle Calendarを利用して更新しているのですが、その表示に使用していたプログラムが動かなくなっていました。調べてみたところ、11/17で「Google Calendar API v2」が廃止になり、それを利用していたサービスはすべて「Google Calendar API v3」に移行してねと言うことだったみたいです。

Google Calendar API v2 Developer’s Guide: Protocol – Google Calendar API — Google Developers

This API is a subject to the Deprecation Policy and was shut down on November 17, 2014. Please use APIv3 instead.


なんてこったい。全くしらなんだ。


仕方が無いのでプログラムを見直し、「Google Calendar API v3」でスケジュールを取得するように変更したのですが、今までと手順が少し変わってたのでメモ代わりに何か残しておきます。



準備編

基本的にはここ沿って作業すればOKです。

Write your First App: Prerequisites – Google Calendar API — Google Developers

1. プロジェクトの作成

まず、プロジェクトを作成します。サービス名そのものでなくてもわかるように名前を付けておけばOKです。

Google Developers Console

2. Calendar APIを有効に

左メニューの「API」をクリックし、右の一覧の中の「Calendar API」を有効にします。

Google Developers Console

3. クライアントIDの準備

左メニューの「認証情報」をクリックし、新しいクライアントIDを作成します。

Google Developers Console

今回必要になるのは「クライアント ID」と「クライアント シークレット 」です。

4. APIキーを取得する

今回は認証画面を挟まずにデータを取得するので、リクエストにAPIキーを取得します。クライアントIDと同じ画面の下部「公開 API へのアクセス」から新しいキーを作成します。

Google Developers Console

セキュリティには十分注意してください。


以上で準備完了。



コーディング編

適当にコーディングすれば出来ます。PHPだと例えばこんな感じとか。



v2との違いは、

  • リクエストパラメータの命名規則がキャメルになってる
  • リクエストパラメータの名前が変更になっているものがある(start-min → timeMinとか)
  • 取得するデータの形式がXMLからJSONに変更になっている
  • 要素の名前が変更になっている場所がある(titile→summaryとか)

ぐらいです。そのあたりを修正すれば問題ないはず。



やれやれ、ちゃんと直って良かった。