Google APIの中には特に気にすること無くAPIをたたけば結果が返ってくる物もありますが、今回自分で使うAPIはOAuth 2.0を前提としたGoogle Calendar API v3 なので、プロジェクトを作ってみました。特に難しくないので、スクリーンショットなどは取っていませんが、作業ログ代わりです。
1. Googleアカウントの取得
既にGoogleアカウントは持っているので改めて取得する必要は無いのですが、それだと個人に紐付いたプロジェクトが出来てしまうので、新たにアカウントを作りました。もちろん、それで問題が無い場合はそのまま自分のGoogleアカウントを使って下さい。なお、Googleアカウントなら何でも良いので、Google Appsの独自ドメインのアカウントでも大丈夫です。
2. Googleアカウントでログインしカレンダーにアクセスできるか確認
普通にカレンダーを使うだけです。既にアカウントを持っている場合、同じブラウザーで複数アカウント同時ログインは面倒くさいので、Google Chromeのユーザー機能でウィンドウ毎にGoogleアカウントを管理します。
新しいユーザーを作るのは「ユーザー」メニュー>「新しいユーザーを追加」か、設定画面から「新しいユーザーを追加」しましょう。正直、このアイコンが気持ち悪いのやバタ臭いのばかり。もうちょっとセンスのいいアイコン無いものでしょうか?
このユーザーを作ってから、そのユーザーでウィンドウを開き、先ほど取得したGoogleアカウントでログインする事でそのウィンドウを新しいユーザー専用として利用できます。すでにご存じの方も多いと思いますが、こうやってユーザーを登録すると、別のマシンに移っても設定や履歴、プラグインの情報などが引き継がれます。それはそれで怖いって言う方もいますが、自分はこれに慣れてしまったので今更他に移れません(苦笑)
3. プロジェクトを登録する
このサイトの通りにしていけば、ほとんど迷わずに自分のプロジェクトが作成できます。
そして、開発者として登録するのは以下のサイトからです。
ログインが求められます。以下の順番で作業を行いました。
- ログインをして「Create Project...」ボタンをクリック
- サービス一覧が表示され、どのAPIを利用する(ONにする)か聞かれる
- 今回は「Calendar API」をONにします
- プロジェクトがデフォルトで作成されるので名前を変更します
- API Project > Rename > Enter the name for your project: > FooBar Calendar
- Overview > Dashboard > Project ID > Register... をクリック
- Project ID: foobar-test <= を指定
- Choose this ID をクリック
4. OAuth 2.0 client IDを取得する
プロジェクトに紐付いたOAuth 2.0のクライアント情報を取得します
- API Access > Authorized API Access > Create an OAuth 2.0 client ID... をクリック
- Create Client ID > Branding Information 画面が出てくるので、内容を埋める
-
- Product Name: FooBar Google Calendar Test
- Google account: foobar@uehatsu.info <= 作成した際のGoogleアカウント
- Product logo: (ロゴへのURL)<= 今回はテスト用のロゴを用意
- Product logo は Max sizeが120x60pxとなっているので注意
- Nextをクリック
- Create Client ID > Client ID Settings 画面が出てくるので内容を埋める
-
- Application type: Installed application
- Installed application type: Other
- Create client ID ボタンをクリック、OAuth 2.0のユーザー情報が作成される
- ここまで記入すると自動的にRedirect URIが生成される(本来はOAuth認証後のリダイレクト先を指定するが、組み込み型にしたので具体的なリダイレクト先は無し
5. Simple API アクセス情報を設定する
Google Calendar APIではOAuth 2.0を使ってアクセスをするので本来必要ではありませんが、Simple APIのアクセスも見ておきます。
Simple APIはその名前の通り、API KeyさえあればGoogle APIにアクセスできます。
その際、アクセス対象に制限をかけ、安全性を増す事が可能です。
Server keyの作成
- Create new Server key...ボタンをクリック
- Accept request from these server IP addresses: ここにはGoogle APIにアクセスするサーバのIPアドレスを1行に一つずつ書いていきます。IPアドレスを直に入力するのはもちろん、192.168.12.0/23などサブネットレベルでの指定も可能です。
- Create ボタンをクリック
- Server Keyが作成されましたが、ここでIPアドレスを指定していないと、IPsにAny IP allowedと出てIPアドレスのチェック無しにアクセスが可能になる事を示しています。できるだけ、IPアドレスは入力しておきましょう。
- そもそもSimple APIを利用するつもりがなければ、このkeyは削除しておきましょう。
Browser keyの作成
- Create new Browser key...ボタンをクリック
- Accept request from these HTTP referers (web sites): ここにはGoogle APIにアクセスするURLを1行に一つずつ書いていきます。URLを全部入力するのももちろんですが、*.example.com/*のようにパターンマッチでサブドメインや、PATHなどの挙動も制御できます。
- Create ボタンをクリック
- Browser keyが作成されましたが、Server key同様にURLを指定していない場合Referers:に Any IP allowed と出てどのURLでもアクセスが可能という事になります。出来るだけReferersで制限をかけるようにしましょう。
- こちらもServer key同様ですが、Simple APIを利用するつもりがなければ、このkeyは削除しておきましょう。
とりあえず、これでプロジェクトとOAuth 2.0の設定は完了です。
あとは、どうやってGoogle Calendar APIを自前アプリで実装するか。それが問題だw
p.s. どうしてもGoogle Calendar APIでgoogle-api-perl-clientが動かない部分があったので、生まれて初めてpullリクエスト出した。採用されるかどうか、めっちゃ緊張。めっちゃチキンw