このリファレンスでは、JavaScript クライアントのメソッドと属性について説明します。 を使用してウェブ アプリケーションに Google ログインを実装できます。
ライブラリの使用中に問題が発生した場合は、 GitHub リポジトリ。
認証の設定
Google API プラットフォーム ライブラリを読み込んで gapi
オブジェクトを作成します。
<script src="https://apis.google.com/js/platform.js?onload=init" async defer></script>
プラットフォーム ライブラリが読み込まれたら、auth2
ライブラリを読み込みます。
function init() {
gapi.load('auth2', function() {
/* Ready. Make a call to gapi.auth2.init or some other API */
});
}
gapi.auth2.init(params)
GoogleAuth
オブジェクトを初期化します。gapi.auth2.GoogleAuth
のメソッドを呼び出す前に、このメソッドを呼び出す必要があります。
GoogleAuth
オブジェクトを初期化するときに、OAuth 2.0 クライアント ID と任意の追加オプションを使用してオブジェクトを構成します。ユーザーがすでにログインしている場合、GoogleAuth
オブジェクトは前回のセッションのユーザーのログイン状態を復元します。
引数 | |
---|---|
params |
クライアント構成データの Key-Value ペアを含むオブジェクト。詳しくは、
gapi.auth2.ClientConfig (異なる値)
構成可能です。次に例を示します。
{ client_id: 'CLIENT_ID.apps.googleusercontent.com' } |
戻り値 | |
---|---|
gapi.auth2.GoogleAuth |
gapi.auth2.GoogleAuth オブジェクト。こちらの
then() メソッドで Promise を取得
gapi.auth2.GoogleAuth オブジェクトが終了したときに解決される
初期化中。
|
GoogleAuth.then(onInit、onError)
GoogleAuth
オブジェクトが完全に完成したら、onInit 関数を呼び出します。
初期化されます。初期化中にエラーが発生した場合(サポートされていない古いブラウザで発生する可能性があります)、
代わりに onError 関数が呼び出されます。
引数 | |
---|---|
onInit |
関数が完全に終了したときに GoogleAuth オブジェクトで呼び出される
初期化されます。
|
onError |
error プロパティを含むオブジェクトで呼び出される関数。
GoogleAuth が初期化に失敗した場合。
|
戻り値 | |
---|---|
Promise | onInit のときに履行される Promise 。
関数が終了したか、初期化エラーが発生した場合は拒否されます。この問題は、
onInit 関数からの戻り値(存在する場合)。 |
エラーコード
idpiframe_initialization_failed
-
Google から必要な iframe を初期化できませんでした。サポートされていない機能などが原因です
できます。
details
プロパティは、発生したエラーに関する詳細情報を提供します。
gapi.auth2.ClientConfig
アプリケーションのさまざまな構成パラメータを表すインターフェース
gapi.auth2.init
メソッドを使用します。
パラメータ | ||
---|---|---|
client_id |
string |
必須。Google API Console で確認および作成されたアプリのクライアント ID。 |
cookie_policy |
string |
ログイン Cookie を作成するドメイン。URI は
single_host_origin 、none 。デフォルトは
指定しない場合は single_host_origin 。 |
scope |
string |
リクエストするスコープ(スペース区切り文字列)。次の場合は省略可
fetch_basic_profile が false に設定されていない。 |
fetch_basic_profile |
boolean |
ユーザーの基本的なプロフィール情報を提供します。「profile」、「email」を追加および 「openid」スコープに追加します。指定しない場合は true。 |
hosted_domain |
string |
ログインするユーザーが所属する必要がある G Suite ドメイン。この
クライアントによって変更される可能性があるので、
返されたユーザーのホスト ドメイン プロパティ。使用
GoogleUser.getHostedDomain()(オン)
ID トークンの hd クレームを、
サーバーが期待どおりであることを検証します。
<ph type="x-smartling-placeholder"> |
use_fedcm |
boolean |
省略可。デフォルトは True です。以下の使用を有効または無効にする
ログイン時に FedCM API を使用できます。 |
ux_mode |
string |
ログインフローに使用する UX モード。デフォルトでは同意フローが開きます
表示されます。有効な値は popup と redirect です。 |
redirect_uri |
string |
ux_mode='redirect' を使用する場合、このパラメータを使用すると、
同意フローの最後に使用されるデフォルトの redirect_uri 。「
デフォルトの redirect_uri は、クエリ パラメータとハッシュが削除された現在の URL です。
あります。
|
enable_granular_consent |
boolean |
省略可。有効にするかどうか
粒
権限。false に設定すると、より詳細な Google
以前に作成された OAuth クライアント ID のアカウント権限は無効になります
2019 年2019 年中またはそれ以降に作成された OAuth クライアント ID については、
よりきめ細かな権限が常に有効になります。
|
plugin_name |
string |
省略可。この値が設定されている場合、7 月より前に新しいクライアント ID が作成されます。
古い Google プラットフォーム ライブラリの使用は、2022 年 2 月 29 日になります。
デフォルトでは、新しく作成したクライアント ID は
代わりに新しい Google Identity モデルを使用する必要があります。
サービス ライブラリ。任意の値を選択できます。たとえば、
プロダクト名またはプラグイン名が推奨されます。
例: plugin_name: 'YOUR_STRING_HERE' |
認証
GoogleAuth
は、ユーザーが Google アカウントでログインするメソッド、ユーザーの現在のログイン ステータスを取得するメソッド、ユーザーの Google プロフィールから特定のデータを取得するメソッド、追加のスコープをリクエストするメソッド、現在のアカウントからのログアウトを行うためのメソッドを提供するシングルトン クラスです。
gapi.auth2.getAuthInstance()
GoogleAuth
オブジェクトを返します。このメソッドを呼び出す前に、gapi.auth2.init()
を使用して GoogleAuth
オブジェクトを初期化する必要があります。
戻り値 | |
---|---|
gapi.auth2.GoogleAuth |
gapi.auth2.GoogleAuth オブジェクト。このオブジェクトを使用して
gapi.auth2.GoogleAuth のメソッド。
|
GoogleAuth.isSignedIn.get()
現在のユーザーがログインしているかどうかを返します。
戻り値 | |
---|---|
ブール値 |
ユーザーがログインしている場合は true 、ユーザーがログインしている場合は false
ユーザーがログアウトされているか、GoogleAuth オブジェクトが
初期化されます。
|
GoogleAuth.isSignedIn.listen(listener)
現在のユーザーのログイン状態の変化をリッスンします。
引数 | |
---|---|
listener |
ブール値を受け取る関数。listen() 枚のパス
ユーザーがログインしたときに、この関数に true を適用し、
false (ユーザーがログアウトしたとき)
|
GoogleAuth.signIn()
gapi.auth2.init()
に指定されたオプションでユーザーをログインさせます。
戻り値 | |
---|---|
Promise | 次の場合に GoogleUser インスタンスで処理される Promise 。
ユーザーがリクエストしたスコープの認証と付与に成功するか、オブジェクトで拒否される
エラーが発生した場合には、error プロパティが格納されることになります。詳しくは、
ご覧ください |
エラーコード
GoogleAuth.signIn(options)
をご覧ください。
GoogleAuth.signIn(options)
指定されたオプションを使用してユーザーをログインさせます。
引数 | |
---|---|
options |
以下のいずれか:
|
戻り値 | |
---|---|
Promise | 次の場合に GoogleUser インスタンスで処理される Promise 。
ユーザーがリクエストしたスコープの認証と付与に成功するか、オブジェクトで拒否される
エラーが発生した場合には error プロパティが含まれる(エラーコードについては後述)。 |
エラーコード
popup_closed_by_user
- ユーザーがログインフローを完了する前にポップアップを閉じました。
access_denied
- ユーザーが必要なスコープに対する権限を拒否しました。
immediate_failed
-
同意フローを表示せずに自動的にユーザーを選択できませんでした。次の場合にエラーが発生する
prompt: 'none'
オプションでsignIn
を使用する。このオプションは 使用する必要があります。これは、次の場合にgapi.auth2.init
が自動的にユーザーにログインするためです。 ログインしたことがあるユーザーに対して
gapi.auth2.SignInOptions
アプリケーションのさまざまな構成パラメータを表すインターフェース
GoogleAuth.signIn(options)
メソッドを使用します。
パラメータ | ||
---|---|---|
prompt |
string |
同意フローに特定のモードを強制的に適用します。省略可。 可能な値は次のとおりです。 <ph type="x-smartling-placeholder">
|
scope |
string |
gapi.auth2.init パラメータ。fetch_basic_profile が設定されていない場合は省略可
false に設定します。
|
ux_mode |
string |
ログインフローに使用する UX モード。デフォルトでは同意フローが開きます
表示されます。有効な値は popup と redirect です。 |
redirect_uri |
string |
ux_mode='redirect' を使用する場合、このパラメータを使用すると、
同意の終了時に使用されるデフォルトの redirect_uri
できます。デフォルトの redirect_uri は、クエリから取り除かれた現在の URL です
ハッシュ フラグメントが含まれます。
|
GoogleAuth.signOut()
現在のアカウントをアプリケーションからログアウトします。
戻り値 | |
---|---|
Promise | ユーザーが署名されたときに履行される Promise
できます。 |
GoogleAuth.disconnect()
ユーザーが付与したすべてのスコープを取り消します。
GoogleAuth.grantOfflineAccess(options)
指定されたスコープにオフラインでアクセスするための権限をユーザーから取得します。
引数 | |
---|---|
options |
gapi.auth2.OfflineAccessOptions
パラメータの Key-Value ペアを格納したオブジェクトです。例: { scope: 'profile email' } |
戻り値 | |
---|---|
Promise | ユーザーが権限を付与したときに履行される Promise 。
認証コードを含むオブジェクトを
Promise のフルフィルメント ハンドラ。
例: auth2.grantOfflineAccess().then(function(resp) { var auth_code = resp.code; }); |
エラーコード
popup_closed_by_user
- ユーザーが同意フローを終了する前にポップアップを閉じました。
access_denied
- ユーザーが必要なスコープに対する権限を拒否しました。
immediate_failed
-
同意フローを表示せずに自動的にユーザーを選択できませんでした。次の場合にエラーが発生する
prompt: 'none'
オプションでsignIn
を使用する。このオプションは 使用する必要があります。これは、次の場合にgapi.auth2.init
が自動的にユーザーにログインするためです。 ログインしたことがあるユーザーに対して
gapi.auth2.OfflineAccessOptions
アプリケーションのさまざまな構成パラメータを表すインターフェース
GoogleAuth.grantOfflineAccess(options)
メソッドを呼び出します。
パラメータ | ||
---|---|---|
prompt |
string |
同意フローに特定のモードを強制的に適用します。省略可。 可能な値は次のとおりです。 <ph type="x-smartling-placeholder">
|
scope |
string |
gapi.auth2.init パラメータ。fetch_basic_profile が設定されていない場合は省略可
false に設定します。
|
GoogleAuth.attachClickHandler(container, options, onsuccess, onfailure)
指定したコンテナのクリック ハンドラにログインフローを接続します。
引数 | |
---|---|
container | 移動先の div 要素の ID または参照
クリック ハンドラをアタッチします。 |
options | パラメータの Key-Value ペアを含むオブジェクト。詳しくは、 GoogleAuth.signIn(). |
onsuccess | ログインの完了後に呼び出す関数。 |
onfailure | ログインが失敗した場合に呼び出す関数。 |
ユーザー
GoogleUser
オブジェクトは 1 つのユーザー アカウントを表します。
GoogleUser
オブジェクトは通常、
GoogleAuth.currentUser.get().
GoogleAuth.currentUser.get()
GoogleUser
オブジェクトを返します。
ユーザーを表す名前です。新しく初期化された
GoogleAuth
インスタンスでは、現在のユーザーは設定されていません。こちらの
currentUser.listen()
メソッドまたは GoogleAuth.then()
初期化済みの GoogleAuth
インスタンスを取得します。
戻り値 | |
---|---|
GoogleUser |
現在のユーザー |
GoogleAuth.currentUser.listen(listener)
currentUser の変更をリッスンする。
引数 | |
---|---|
listener |
GoogleUser パラメータを受け取る関数。
listen はこの関数に GoogleUser を渡します。
currentUser を変更するたびにインスタンスが作成されます。
|
GoogleUser.getId()
ユーザーの一意の ID 文字列を取得します。
戻り値 | |
---|---|
文字列 | ユーザーの一意の ID |
GoogleUser.isSignedIn()
ユーザーがログインしている場合は true を返します。
戻り値 | |
---|---|
ブール値 | ユーザーがログインしている場合は true |
GoogleUser.getHostedDomain()
ユーザーが G Suite アカウントでログインしている場合は、ユーザーの G Suite ドメインを取得します。
戻り値 | |
---|---|
文字列 | ユーザーの G Suite ドメイン |
GoogleUser.getGrantedScopes()
ユーザーが付与したスコープをスペース区切りの文字列として取得します。
戻り値 | |
---|---|
文字列 | ユーザーが付与したスコープ |
GoogleUser.getBasicProfile()
ユーザーの基本的なプロフィール情報を取得します。
戻り値 | |
---|---|
gapi.auth2.BasicProfile |
gapi.auth2.BasicProfile のプロパティを取得できます。
次のメソッドを使用します。
<ph type="x-smartling-placeholder">
|
GoogleUser.getAuthResponse(includeAuthorizationData)
ユーザーの認証セッションからレスポンス オブジェクトを取得します。
引数 | |
---|---|
includeAuthorizationData | 省略可: 常にアクセス トークンを返すかどうかを指定するブール値。
あります。デフォルトでは、アクセス トークンとリクエストされたスコープは、
fetch_basic_profile は true(デフォルト値)で、追加のスコープはありません。
渡されます。 |
戻り値 | |
---|---|
gapi.auth2.AuthResponse |
gapi.auth2.AuthResponse オブジェクト。
|
GoogleUser.reloadAuthResponse()
アクセス トークンを強制的に更新し、新しい AuthResponse に対する Promise を返します。
戻り値 | |
---|---|
Promise |
再読み込みされた Promise 。
gapi.auth2.AuthResponse (再読み込み時)
OAuth トークンが完了しました。
|
gapi.auth2.AuthResponse
呼び出し時に返されるレスポンス
GoogleUser.getAuthResponse(includeAuthorizationData)
または
GoogleUser.reloadAuthResponse()
あります。
プロパティ | ||
---|---|---|
access_token |
string |
付与されたアクセス トークン。 |
id_token |
string |
付与された ID トークン。 |
scope |
string |
アクセス トークンで付与されるスコープ。 |
expires_in |
number |
アクセス トークンが期限切れになるまでの秒数。 |
first_issued_at |
number |
リクエストされたスコープをユーザーが最初に付与したタイムスタンプ。 |
expires_at |
number |
アクセス トークンが期限切れになるタイムスタンプ。 |
GoogleUser.hasGrantedScopes(scopes)
指定されたスコープをユーザーが付与した場合、true を返します。
引数 | |
---|---|
scopes | スペースで区切られたスコープ文字列。 |
戻り値 | |
---|---|
ブール値 | スコープが付与されている場合は true |
GoogleUser.grant(options)
ユーザーに追加のスコープをリクエストします。
詳細については、GoogleAuth.signIn()
をご覧ください。
パラメータとエラーコードが表示されます。
GoogleUser.grantOfflineAccess(options)
指定されたスコープにオフラインでアクセスするための権限をユーザーから取得します。
引数 | |
---|---|
options |
gapi.auth2.OfflineAccessOptions
パラメータの Key-Value ペアを格納したオブジェクトです。例: { scope: 'profile email' } |
GoogleUser.disconnect()
ユーザーがアプリケーションに付与したすべてのスコープを取り消します。
UI 要素
gapi.signin2.render(id, options)
指定された ID の要素内で、ログインボタンをレンダリングします。 options オブジェクトで指定された設定。
引数 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | ログインボタンをレンダリングする要素の ID。 | ||||||||||||||||
options |
ボタンのレンダリングに使用する設定を含むオブジェクト。次に例を示します。
{ scope: 'email', width: 200, height: 50, longtitle: true, theme: 'dark', onsuccess: handleSuccess, onfailure: handleFailure }次のオプションを指定できます。
|
高度
<ph type="x-smartling-placeholder">gapi.auth2.authorize(params, callback)
1 回限りの OAuth 2.0 認証を行います。使用するパラメータによっては、ウィンドウが開き、 ポップアップを表示するか、リクエストされた応答をユーザーの操作なしで自動的に読み込もうとします。
この方法は、次のようなユースケースに役立ちます。
- アプリケーションで Google API エンドポイントを一度リクエストするだけで済みます。たとえば、 最初にログインしたときに、お気に入りの YouTube 動画が表示されます。
- アプリケーションに独自のセッション管理インフラストラクチャがあり、 バックエンドでユーザーを識別するために 1 回だけ ID トークン。
- 同じページ内で複数のクライアント ID が使用されている。
引数 | |
---|---|
params |
構成データの Key-Value ペアを含むオブジェクト。詳しくは、
gapi.auth2.AuthorizeConfig :
さまざまなプロパティを構成できます例:
{ client_id: 'CLIENT_ID.apps.googleusercontent.com', scope: 'email profile openid', response_type: 'id_token permission' } |
callback |
この関数は、
gapi.auth2.AuthorizeResponse オブジェクト
リクエストが完了した後(成功または失敗した場合)に行われます。
|
例
gapi.auth2.authorize({
client_id: 'CLIENT_ID.apps.googleusercontent.com',
scope: 'email profile openid',
response_type: 'id_token permission'
}, function(response) {
if (response.error) {
// An error happened!
return;
}
// The user authorized the application for the scopes requested.
var accessToken = response.access_token;
var idToken = response.id_token;
// You can also now use gapi.client to perform authenticated requests.
});
エラーコード
idpiframe_initialization_failed
-
Google から必要な iframe を初期化できませんでした。サポートされていない機能
できます。
details
プロパティは、発生したエラーに関する詳細情報を提供します。 popup_closed_by_user
- ユーザーがログインフローを完了する前にポップアップを閉じました。
access_denied
- ユーザーが必要なスコープに対する権限を拒否しました。
immediate_failed
-
同意フローを表示せずに自動的にユーザーを選択できませんでした。次の場合にエラーが発生する
prompt: 'none'
オプションでsignIn
を使用する。
gapi.auth2.AuthorizeConfig
アプリケーションのさまざまな構成パラメータを表すインターフェース
gapi.auth2.authorize
メソッドを使用します。
プロパティ | ||
---|---|---|
client_id |
string |
必須。Google API Console で確認および作成されたアプリのクライアント ID。 |
scope |
string |
必須。リクエストするスコープ(スペース区切り文字列)。 |
response_type |
string |
スペースで区切られたレスポンス タイプのリスト。デフォルトは 'permission' です。考えられる
次のとおりです。
<ph type="x-smartling-placeholder">
|
prompt |
string |
同意フローに特定のモードを強制的に適用します。可能な値は次のとおりです。
<ph type="x-smartling-placeholder">
|
cookie_policy |
string |
ログイン Cookie を作成するドメイン。URI は
single_host_origin 、none 。デフォルトは
指定しない場合は single_host_origin 。
|
hosted_domain |
string |
ログインするユーザーが所属する必要がある G Suite ドメイン。変更の影響を受けやすい 戻されたユーザーのホスト ドメイン プロパティを必ず確認してください。 |
login_hint |
string |
ログインフローで事前に選択するユーザーのメールアドレスまたはユーザー ID。これによって脆弱性が
ユーザーによる変更(prompt: "none" が使用されている場合を除く)
|
include_granted_scopes |
boolean |
ユーザーが以前に付与したすべてのスコープを含むアクセス トークンをリクエストするかどうか
スコープのみにするか、現在の呼び出しでリクエストされたスコープのみにするかを選べます。デフォルトは true です。
|
enable_granular_consent |
boolean |
省略可。有効にするかどうか
粒
権限。false に設定すると、より詳細な Google
以前に作成された OAuth クライアント ID のアカウント権限は無効になります
2019 年2019 年中またはそれ以降に作成された OAuth クライアント ID については、
よりきめ細かな権限が常に有効になります。
|
plugin_name |
string |
省略可。設定した場合、2022 年 7 月 29 日より前に作成されたクライアント ID には
Google プラットフォーム ライブラリ。デフォルトでは、新しく作成されたクライアント ID はブロックされる
使用されないため、代わりに新しい Google Cloud SDK を使用してください。
Identity Services ライブラリです。任意の値、わかりやすい名前、
(プロダクト名やプラグイン名など)を含めると識別しやすくなります。
例: plugin_name: 'YOUR_STRING_HERE' |
gapi.auth2.AuthorizeResponse
アプリケーションのコールバックに
gapi.auth2.authorize
メソッドを使用します。
プロパティ | ||
---|---|---|
access_token |
string |
付与されたアクセス トークン。permission または token が指定された場合にのみ存在します。
response_type で指定された値。
|
id_token |
string |
付与された ID トークン。id_token が
response_type 。
|
code |
string |
付与された認可コード。code が
response_type 。
|
scope |
string |
アクセス トークンで付与されるスコープ。permission または
response_type で token が指定されています。
|
expires_in |
number |
アクセス トークンが期限切れになるまでの秒数。permission の場合のみ表示
response_type で token が指定されている。
|
first_issued_at |
number |
リクエストされたスコープをユーザーが最初に付与したタイムスタンプ。次の場合にのみ表示
response_type で permission または token が指定されている。
|
expires_at |
number |
アクセス トークンが期限切れになるタイムスタンプ。permission の場合のみ表示
response_type で token が指定されている。
|
error |
string |
リクエストが失敗した場合、ここには エラーコード。 |
error_subtype |
string |
リクエストが失敗した場合は、エラーコードに追加情報が含まれる場合があります。 返されます。 |