● Creating a Book Search account
Book Search は Google Account を使っているので、
Google Account を既に持って入れば、そのアカウントで
My Library の機能をテストできる。
■ Authenticating to the Book Search service
Public feed には、authentication は必要ないが、read-only
user libraries を編集したり、レビューや評価を投票したり、
ラベルを追加したりする場合は、private feeds にリクエスト
を投げる前に authentication が必要
authentication には2つの方法がある
AuthSub proxy authentication か
ClientLogin username/password authentication
authentication documentation
● AuthSub proxy authentication
AuthSub proxy authentication はユーザーの Google Accounts で
認証する必要がある web アプリで使う
web site operator や client code は Book Search ユーザーの
username と password にアクセスする必要がない代わりに、
client は特別な AuthSub token を取得する
詳しくは AuthSub documentation を参照
ユーザーが最初に自分のアプリケーションに来たときにはまだ
認証がされていない。この場合、情報を表示して、ユーザーの
アカウントにアクセスするリクエストを認証するための Google page に
リダイレクトする必要がある。
AuthSubRequest URL は以下のクエリパラメータを含む
next
認証後に Google がリダイレクトするページのURL
scope
アプリケーションが Book Search feeds のトークンを
リクエストしていることを表す。この scope の文字列には、
http://www.google.com/books/feeds/
(もちろん URL-encoded する) を使う
secure
client が secure token をリクエストしているかどうかを表す
session
multi-use (settion) token に持ち替えられるかどうかを表す
AuthSubRequest URL はこんな感じになる。
https://www.google.com/accounts/AuthSubRequest?scope=http%3A%2F%2Fwww.google.com%2Fbooks%2Ffeeds%2F&session=1&secure=0&next=http%3A%2F%2Fwww.example.com%2Fwelcome.html
許可すると、next パラメータで指定したらURLにリダイレクトされ、
AuthSub System が最後に token パラメータを追加する
リダイレクト先の URL はこんな感じになる。
http://www.example.com/welcome.html?token=yourAuthToken
例えば、
https://www.google.com/accounts/AuthSubRequest?scope=http%3A%2F%2Fwww.google.com%2Fbooks%2Ffeeds%2F&session=1&secure=0&next=http%3A%2F%2Fy-anz-m.blogspot.com
にアクセスすると、次のようなページが表示される
許可すると、http://y-anz-m.blogspot.com/ にリダイレクトされる
このトークン値は single-use AuthSub token を提供する。
この例では、session=1 を指定しているので、Authorization header に
single-use token を付加して AuthSubSessionToken サービス
を呼び出すことで、AuthSub session token を
取り替えられる
header はこんなかんじ
GET /accounts/AuthSubSessionToken HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Authorization: AuthSub token="yourAuthToken"
User-Agent: Java/1.5.0_06
Host: www.google.com
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
AuthSubSessionToken サービスのレスポンスには、 Token header に
session token が含まれ、Expiration header にどのくらいの期間
このトークンが有効かが含まれる
アプリケーションでは、続く Book Search とのやりとりの
Authorization header に、この session token をつかうことができる
non-secure token を含む HTTP リクエストの例
GET http://www.google.com/books/feeds/users/me/volumes HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Authorization: AuthSub token="yourSessionToken"
User-Agent: Java/1.5.0_06
Host: www.google.com
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
● ClientLogin username/password authentication
client が standalone (single-user が "installed" した
クライアント、デスクトップアプリケーションとか)の場合、
ClientLogin authentication を使う。ClientLogin を使って
authentication token をリクエストするには、次の URL に
POST リクエストを送る
https://www.google.com/accounts/ClientLogin
POST body には、クエリパラメータのセットを含み、content type
には、application/x-www-form-urlencoded を使う
パラメータ
accountType
認証されるアカウントのタイプ
デフォルトは GOOGLE
もし、Google Apps ユーザーをサポートしたいなら
HOSTED_OR_GOOGLE
ユーザーの email アドレス
Passwd
ユーザーの パスワード
service
Book Search サービス名 "print"
(他のサービス名は service name list 参照)
source
client アプリケーションの識別値
companyName-applicationName-versionID から取得する
パラメータの詳細は Authentication for Installed Applications 参照
認証リクエストに失敗場合、サーバーは HTTP 403 Forbidden
status code を返す
成功した場合、サーバーは HTTP 200 OK status code を返す
さらに 3つの long alphanumeric codes SID, LSID, Auth を
レスポンスの bodyに含む
Auth 値が authorization token であり、volumes-feed リクエスト
と一緒に Book Search に送る。SID と LSID は無視していい。
private feeds への全てのリクエストは認証が必要なので、Book Search
との全てのやりとりには、次のフォーマットを使って Authorization
header をセットしなければならない
Authorization: GoogleLogin auth=yourAuthToken
yourAuthToken は ClientLogin リクエストで返された Auth 文字列
リクエストとレンスポンスを含む ClientLogin authentication の詳細は、
Authentication for Installed Applications を参照
注: 与えられたセッションでの全てのリクエストに同じトークンを使うこと
Book Search リクエストごとに新しい token を取得しないこと
0 件のコメント:
コメントを投稿