Googleカレンダーでのログイン〜スケジュール管理ソフトをS!アプリで作ってみよう(その18)
Googleカレンダーでは、ユーザーの認証が必要になる。(別にカレンダーだけではなくて、ほとんどサービスで必要なんだろうけど...) 認証の方式は2つあるようだ。
「ClientLogin」と「AuthSub」の2つの認証方式があるようだ。ClientLoginの方はデスクトップのアプリのような、スタンドアローンの単一ユーザがインストールして使用するもの向けである。AuthSubの方は、マルチユーザのWebアプリ向けである。今回作るスケジュール管理ソフトは、シングルユーザ向けなので、ClientLoginを使用する。
ClientLoginでは、まず最初に以下のURLへPOST要求を送信する。
POSTのbodyには以下のパラメータを含める必要がある。
https://www.google.com/accounts/ClientLogin
パラメータ | 説明 |
---|---|
Googleアカウントにログインする時のメールアドレス。 | |
Passwd | Googleアカウントにログインする時のパスワード。Unixのコマンドと同じくorがない |
source | アプリを一意に識別するための値。他の人の作成したアプリとかぶらなければなんでもいい。今回は、com.ettem-schduler-1とでもしておこう |
service | 利用するGoogleのサービスの文字列。Googleカレンダーの場合は、「cl」 |
認証に成功すれば、以下のようなレスポンスがある。
この中で、Authの値だけが必要になるので、この値を記憶させておき、認証が必要になるアクセス(つまり非公開にしている予定へのアクセス)を行うときには、ヘッダに以下の内容をセットする。
HTTP/1.0 200 OK
Server: GFE/1.3
Content-Type: text/plainSID=DQAAAGgA...7Zg8CTN
LSID=DQAAAGsA...lk8BBbG
Auth=DQAAAGgA...dk3fA5N(注:「...」の部分はもっと長い。)
Authorization: GoogleLogin auth=DQAAAGgA...dk3fA5N
具体的な例はこちらのGoogle Codeのページ。