Google関連
- Google Apps Script (GAS)
- Google App Engine (GAE)
- Google Calendar, Gmail, ...
#lsd2
- Developer Projectを作成する
- プロジェクトページでAPIの使用を有効にする
- client id をもらう
- リダイレクト先や、javascriptでの呼び出し先(クロスドメインの話のため?)
- 登録したら ID と シークレットキーをもらう
初回の承認フロー
- Google ドライブがユーザーに OAuth ダイアログを表示し、データをリクエストしているアプリケーションを承認するよう求めます。
- ユーザーが承認すると、そのユーザーはアプリケーションの URL にリダイレクトされ、URL の code パラメータにある承認コードが提供されます。
- アプリケーションが認証情報と引き換えに承認コードを渡します。この情報には、アクセス トークンと有効期間が長いリフレッシュ トークンが含まれます。
- アプリケーションが User Info サービスを呼び出して、ID とメールを取得します。ID は有効期間の長いリフレッシュ トークンを保存するためのメイン キーとして使用されます。
- アプリケーションが、後でアクセス トークンを取得できるように、リフレッシュ トークンとメールをユーザー ID でインデックス付けして保存します。
Authorization CodeをもらうためのURL
保存されている認証情報で承認する
初回の承認フローが正常に終了した後でユーザーがアプリケーションにアクセスした場合、エンドユーザーにメッセージは表示されません。アプリケーションは、保存されているリフレッシュ トークンを使用してリクエストを承認できます。
アプリは、データベースからリフレッシュ トークンを探し出してサーバー側のセッションに保存できます。アクセス トークンが期限切れになると、このリフレッシュ トークンを再使用して新しいアクセス トークンをリクエストします。
アプリケーションが Google ドライブ ファイルへアクセスすることをユーザーが既に承認している場合の承認フローは、次のようになります:
- ブラウザがアプリケーションの URL にリダイレクトされ、URL の code パラメータにある承認コードが提供されます。
- アプリケーションが認証情報と引き合えに承認コードを渡します。ユーザーは既にアクセスを承認しているので、リフレッシュ トークンは返されません。返されるのは、有効期間が短いアクセス トークンのみです。
- アプリケーションが User Info サービスを呼び出して、有効期間が長いリフレッシュ トークンを探す場合にマスター キーとして使用するユーザー ID を取得します。
- アプリケーションがデータベースからリフレッシュ トークンを取得し、そのトークンをサーバー側のセッションに保存します。リフレッシュ トークンが取り消されたり無効になったりした場合は、これを検出し、適切な措置を取る必要があります。詳しくは、こちらをご覧ください。
GoogleAuthorizationCodeFlow
This is designed to simplify the flow in which an end-user authorizes the application to access their protected data, and then the application has access to their data based on an access token and a refresh token to refresh that access token when it expires.
- ユーザーがすでに証明書を持っているか、チェックする
- 持っていない場合はnewAuthorizationUrl()で認証ページヘ遷移。ブラウザは、codeパラメータを持たせてリダイレクトページへ。newTokenRequest(String) を使う。
- 最後は #createAndStoreCredential(TokenResponse, String)で証明書を保管。
|
GAE |
Servlet |
google-api-client-1.18.0-rc.jar |
○ |
○ |
google-api-client-appengine-1.18.0-rc.jar |
○ |
|
google-api-client-servlet-1.18.0-rc.jar |
○ |
○ |
google-oauth-client-1.18.0-rc.jar |
○ |
○ |
google-oauth-client-appengine-1.18.0-rc.jar |
○ |
|
google-oauth-client-servlet-1.18.0-rc.jar |
○ |
○ |
google-http-client-1.18.0-rc.jar |
○ |
○ |
google-http-client-appengine-1.18.0-rc.jar |
○ |
|
commons-logging-1.1.1.jar |
|
○ |
gson-2.1.jar |
○ |
○ |
httpclient-4.0.1.jar |
|
○ |
httpcore-4.0.1.jar |
|
○ |
jackson-core-asl-1.9.11.jar |
○ |
○ |
jackson-core-2.1.3.jar |
○ |
○ |
jdo2-api-2.3-eb.jar |
○ |
○ |
jsr305-1.3.9.jar |
○ |
○ |
protobuf-java-2.4.1.jar |
○ |
○ |
transaction-api-1.1.jar |
○ |
○ |
xpp3-1.1.4c.jar |
○ |
○ |
javascriptでのAPI操作
事前準備
APIキー、クライアントIDの取得
流れ
- Google APIs Client Library を読み込む
- APIキーを使って、認証
- ユーザー固有の情報にアクセスする場合はauth認証
- 使いたいAPIを読み込む
AppEngine
web.xmlに日本語が混ざっていると、アップロードに失敗
Google Cloud での操作
プロジェクトの指定
最終更新:2020年08月01日 21:03