私たちはされているウェブのためのGoogleのサインインのJavaScriptプラットフォームライブラリを中止します。認証とユーザーのサインインの場合は、両方のために新しいGoogleアイデンティティサービスSDKを使用したWebおよびAndroidの代わりに。

GoogleサインインJavaScriptクライアントリファレンス

このリファレンスでは、WebアプリケーションにGoogleサインインを実装するために使用するJavaScriptクライアントのメソッドと属性について説明します。

ライブラリの使用で問題が発生した場合は、 GitHubリポジトリに報告してください。

認証設定

Google APIプラットフォームライブラリをロードして、 gapiオブジェクトを作成します。

<script src="https://apis.google.com/js/platform.js?onload=init" async defer></script>

プラットフォームライブラリがロードされauth2auth2ライブラリをロードします。

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オブジェクトを初期化するときは、OAuth2.0クライアントIDと指定する追加オプションを使用してオブジェクトを構成します。次に、ユーザーがすでにサインインしている場合、 GoogleAuthオブジェクトはユーザーのサインイン状態を前のセッションから復元します。

引数
paramsクライアント構成データのキーと値のペアを含むオブジェクト。構成可能なさまざまなプロパティについては、 gapi.auth2.ClientConfigを参照してください。例:
{
  client_id: 'CLIENT_ID.apps.googleusercontent.com'
}
戻り値
gapi.auth2.GoogleAuth gapi.auth2.GoogleAuthオブジェクト。 then()メソッドを使用して、 gapi.auth2.GoogleAuthオブジェクトの初期化がgapi.auth2.GoogleAuthときに解決されるPromiseを取得します。

GoogleAuth.then( onInitonError

GoogleAuthオブジェクトが完全に初期化されると、 onInit関数を呼び出します。初期化中にエラーが発生した場合(これはサポートされていない古いブラウザで発生する可能性があります)、代わりにonError関数が呼び出されます。

引数
onInit完全に初期化されたときにGoogleAuthオブジェクトで呼び出される関数。
onError GoogleAuth初期化に失敗した場合、 errorプロパティを含むオブジェクトで呼び出された関数。
戻り値
約束するonInit関数が完了したときにonInitされる、または初期化エラーが発生した場合に拒否されるPromiseonInit関数からの戻り値がある場合はそれで解決されます。

エラーコード

idpiframe_initialization_failed
たとえば、サポートされていない環境が原因で、Googleから必要なiframeを初期化できませんでした。 detailsプロパティは、発生したエラーに関する詳細情報を提供します。

gapi.auth2.ClientConfig

gapi.auth2.initメソッドのさまざまな構成パラメーターを表すインターフェース。

パラメーター
client_id string必須。 Google DevelopersConsoleで検出および作成されたアプリのクライアントID。
cookie_policy stringサインインCookieを作成するドメイン。 URI、 single_host_origin 、またはnoneか。指定されていsingle_host_origin場合、デフォルトはsingle_host_originです。
scope stringスペースで区切られた文字列として要求するスコープ。 fetch_basic_profileがfalseに設定されていない場合はオプション。
fetch_basic_profile booleanサインイン時にユーザーの基本的なプロファイル情報を取得します。要求されたスコープに「profile」、「email」、および「openid」を追加します。指定されていない場合はTrue。
hosted_domain stringユーザーが所属する必要のあるGSuiteドメインはサインインします。これはクライアントによる変更の影響を受けやすいため、返されたユーザーのホストドメインプロパティを必ず確認してください。クライアントでGoogleUser.getHostedDomain()を使用し、サーバーのIDトークンでhdクレームを使用して、ドメインが期待どおりであることを確認します。
ux_mode stringサインインフローに使用するUXモード。デフォルトでは、ポップアップで同意フローが開きます。有効な値はpopupredirectです。
redirect_uri string ux_mode='redirect'を使用する場合、このパラメーターを使用すると、同意フローの最後に使用されるデフォルトのredirect_uriをオーバーライドできます。デフォルトのredirect_uriは、クエリパラメータとハッシュフラグメントを取り除いた現在のURLです。

認証

GoogleAuthは、ユーザーがGoogleアカウントでログインし、ユーザーの現在のログインステータスを取得し、ユーザーのGoogleプロファイルから特定のデータを取得し、追加のスコープをリクエストし、現在のアカウントからサインアウトできるようにするメソッドを提供するシングルトンクラスです。

gapi.auth2.getAuthInstance()

GoogleAuthオブジェクトを返します。このメソッドを呼び出す前に、 gapi.auth2.init()gapi.auth2.init()GoogleAuthオブジェクトを初期化する必要があります。

戻り値
gapi.auth2.GoogleAuth gapi.auth2.GoogleAuthオブジェクト。このオブジェクトを使用して、 gapi.auth2.GoogleAuthのメソッドを呼び出します。

GoogleAuth.isSignedIn.get()

現在のユーザーが現在サインインしているかどうかを返します。

戻り値
ブール値ユーザーがサインインしている場合はtrue 、ユーザーがサインアウトしている場合やGoogleAuthオブジェクトが初期化されていない場合はfalse

GoogleAuth.isSignedIn.listen(listener)

現在のユーザーのサインイン状態の変化をリッスンします。

引数
listenerブール値をとる関数。 listen()は、ユーザーがサインインするとtrueをこの関数に渡し、ユーザーがサインアウトするとfalseを渡しtrue

GoogleAuth.signIn()

gapi.auth2.init()指定されたオプションを使用してユーザーにサインインします。

戻り値
約束するユーザーが要求されたスコープを正常に認証して付与したときにGoogleUserインスタンスで満たされる、またはエラーが発生した場合にerrorプロパティを含むオブジェクトで拒否されたPromise (エラーコードについては以下を参照)。

エラーコード

GoogleAuth.signIn( options )参照してください。

GoogleAuth.signIn( options

指定されたオプションを使用してユーザーにサインインします。

引数
optionsどちらか:
  • サインインパラメータのキーと値のペアを含むgapi.auth2.SignInOptionsオブジェクト。例:
    {
      scope: 'profile email'
    }
  • gapi.auth2.SigninOptionsBuilderのインスタンス。例:
    options = new gapi.auth2.SigninOptionsBuilder();
    options.setAppPackageName('com.example.app');
    options.setFetchBasicProfile(True);
    options.setPrompt('select_account');
    options.setScope('profile').setScope('email');
戻り値
約束するユーザーが要求されたスコープを正常に認証して付与したときにGoogleUserインスタンスで満たされる、またはエラーが発生した場合にerrorプロパティを含むオブジェクトで拒否されたPromise (エラーコードについては以下を参照)。

エラーコード

popup_closed_by_user
ユーザーは、サインインフローを終了する前にポップアップを閉じました。
access_denied
ユーザーは、必要なスコープへのアクセス許可を拒否しました。
immediate_failed
同意フローを要求せずにユーザーを自動的に選択することはできません。 prompt: 'none' signInを使用signInとエラーが発生しsignInprompt: 'none'オプション。以前のセッション中に以前にサインインした場合、 gapi.auth2.initはユーザーに自動的にサインインするため、このオプションを使用する必要はありません。

gapi.auth2.SignInOptions

GoogleAuth.signIn( options )メソッドのさまざまな構成パラメーターを表すインターフェース。

パラメーター
prompt string同意フローに特定のモードを強制します。オプション。
可能な値は次のとおりです。
  • consent
    承認サーバーは、情報をアプリケーションに返す前に、ユーザーに同意を求めるプロンプトを表示します。
  • select_account
    承認サーバーは、ユーザーにGoogleアカウントを選択するように求めます。これにより、複数のアカウントを持つユーザーは、現在のセッションを持つ可能性のある複数のアカウントから選択できます。
  • none非推奨
    許可サーバーは、認証画面またはユーザー同意画面を表示しません。ユーザーがまだ認証されておらず、要求されたスコープに以前に同意していない場合は、エラーが返されます。
    gapi.auth2.initにサインインした場合、 gapi.auth2.initはユーザーをアプリケーションに自動的にサインインするため、 signIn({prompt: 'none'})呼び出しは通常失敗します。
scope stringスペースで区切られた文字列として、 gapi.auth2.init定義されたスコープの上に要求するスコープ。 fetch_basic_profileがfalseに設定されていない場合はオプション。
ux_mode stringサインインフローに使用するUXモード。デフォルトでは、ポップアップで同意フローが開きます。有効な値はpopupredirectです。
redirect_uri string ux_mode='redirect'を使用する場合、このパラメーターを使用すると、同意フローの最後に使用されるデフォルトのredirect_uriをオーバーライドできます。デフォルトのredirect_uriは、クエリパラメータとハッシュフラグメントを取り除いた現在のURLです。

GoogleAuth.signOut()

アプリケーションから現在のアカウントをサインアウトします。

戻り値
約束するユーザーがサインアウトしたときに実行されるPromise

GoogleAuth.disconnect()

ユーザーが付与したすべてのスコープを取り消します。

GoogleAuth.grantOfflineAccess( options

指定されたスコープにオフラインでアクセスするための許可をユーザーから取得します。

引数
optionsパラメータのキーと値のペアを含むgapi.auth2.OfflineAccessOptionsオブジェクト。例:
{
  scope: 'profile email'
}
戻り値
約束するA Promiseユーザが認証コードを含むオブジェクト渡して、要求されたスコープを付与したときに成立するPromiseの履行ハンドラを。例:
auth2.grantOfflineAccess().then(function(resp) {
  var auth_code = resp.code;
});

エラーコード

popup_closed_by_user
ユーザーは、同意フローを終了する前にポップアップを閉じました。
access_denied
ユーザーは、必要なスコープへのアクセス許可を拒否しました。
immediate_failed
同意フローを要求せずにユーザーを自動的に選択することはできません。 prompt: 'none' signInを使用signInとエラーが発生しsignInprompt: 'none'オプション。以前のセッション中に以前にサインインした場合、 gapi.auth2.initはユーザーに自動的にサインインするため、このオプションを使用する必要はありません。

gapi.auth2.OfflineAccessOptions

GoogleAuth.grantOfflineAccess( options )メソッドのさまざまな構成パラメーターを表すインターフェース。

パラメーター
prompt string同意フローに特定のモードを強制します。オプション。
可能な値は次のとおりです。
  • consent
    承認サーバーは、情報をアプリケーションに返す前に、ユーザーに同意を求めるプロンプトを表示します。
  • select_account
    承認サーバーは、ユーザーにGoogleアカウントを選択するように求めます。これにより、複数のアカウントを持つユーザーは、現在のセッションを持つ可能性のある複数のアカウントから選択できます。
scope stringスペースで区切られた文字列として、 gapi.auth2.init定義されたスコープの上に要求するスコープ。 fetch_basic_profileがfalseに設定されていない場合はオプション。

GoogleAuth.attachClickHandler( containeroptionsonsuccessonfailure

サインインフローを、指定されたコンテナーのクリックハンドラーにアタッチします。

引数
containerクリックハンドラーをアタッチするdiv要素のIDまたは参照。
optionsパラメータのキーと値のペアを含むオブジェクト。 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パラメータをGoogleUser関数。 listenは、 currentUserを変更するすべての変更で、この関数にGoogleUserインスタンスを渡しcurrentUser

GoogleUser.getId()

ユーザーの一意のID文字列を取得します。

戻り値
ストリングユーザーの一意のID

GoogleUser.isSignedIn()

ユーザーがサインインしている場合はtrueを返します。

戻り値
ブール値ユーザーがサインインしている場合はTrue

GoogleUser.getHostedDomain()

ユーザーがGSuiteアカウントでサインインしている場合は、ユーザーのGSuiteドメインを取得します。

戻り値
ストリングユーザーのGSuiteドメイン

GoogleUser.getGrantedScopes()

ユーザーがスペース区切りの文字列として付与したスコープを取得します。

戻り値
ストリングユーザーによって付与されたスコープ

GoogleUser.getBasicProfile()

ユーザーの基本的なプロファイル情報を取得します。

戻り値
gapi.auth2.BasicProfile以下のメソッドをgapi.auth2.BasicProfileして、 gapi.auth2.BasicProfileのプロパティを取得できます。
  • BasicProfile.getId()
  • BasicProfile.getName()
  • BasicProfile.getGivenName()
  • BasicProfile.getFamilyName()
  • BasicProfile.getImageUrl()
  • BasicProfile.getEmail()

GoogleUser.getAuthResponse(includeAuthorizationData)

ユーザーの認証セッションから応答オブジェクトを取得します。

引数
includeAuthorizationDataオプション:アクセストークンとスコープを常に返すかどうかを指定するブール値。デフォルトでは、 fetch_basic_profileがtrue(デフォルト値)であり、追加のスコープが要求されていない場合、アクセストークンと要求されたスコープは返されません。
戻り値
gapi.auth2.AuthResponse gapi.auth2.AuthResponseオブジェクト。

GoogleUser.reloadAuthResponse()

アクセストークンを強制的に更新してから、新しいAuthResponseのPromiseを返します。

戻り値
Promise OAuthトークンの再読み込み時に再読み込みされたgapi.auth2.AuthResponse満たされるPromiseが実行されます。

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オブジェクト。例:
{
  scope: 'profile email'
}

GoogleUser.disconnect()

ユーザーがアプリケーションに付与したすべてのスコープを取り消します。

UI要素

gapi.signin2.render( idoptions

optionsオブジェクトで指定された設定を使用して、指定されたIDの要素にサインインボタンをレンダリングします。

引数
idサインインボタンをレンダリングする要素のID。
optionsボタンのレンダリングに使用する設定を含むオブジェクト。例:
{
  scope: 'email',
  width: 200,
  height: 50,
  longtitle: true,
  theme: 'dark',
  onsuccess: handleSuccess,
  onfailure: handleFailure
}
次のオプションを指定できます。
パラメーター
範囲ユーザーがサインインしたときに要求するスコープ(デフォルト: profile )。
ボタンの幅(ピクセル単位)(デフォルト: 120 )。
高さボタンの高さ(ピクセル単位)(デフォルト: 36 )。
ロングタイトル「サインイン」ではなく「Googleでサインイン」などの長いラベルを表示します(デフォルト: false )。長いタイトルを使用する場合は、ボタンの幅をデフォルトから増やす必要があります。
テーマボタンのカラーテーマ: lightまたはdark (デフォルト: light )。
成功ユーザーが正常にサインインしたときに呼び出すコールバック関数。この関数は、 gapi.auth2.GoogleUserインスタンス(デフォルト:なし)という1つの引数を取る必要があります。
onfailureサインインが失敗したときに呼び出すコールバック関数。この関数は引数を取りません(デフォルト:なし)。

高度な

gapi.auth2.authorize( paramscallback

OAuth2.0認証を1回実行します。使用するパラメータに応じて、これによりGoogleサインインフローへのポップアップが開くか、ユーザーの操作なしで要求された応答をサイレントにロードしようとします。

この方法が役立ついくつかのユースケースは次のとおりです。

  • アプリケーションは、Google APIエンドポイントを1回要求するだけで済みます。たとえば、ユーザーが最初にサインインしたときに、ユーザーのお気に入りのYouTube動画を読み込むことができます。
  • アプリケーションには独自のセッション管理インフラストラクチャがあり、バックエンドでユーザーを識別するためにIDトークンが必要になるのは1回だけです。
  • 同じページ内で複数のクライアントIDが使用されます。
引数
params構成データのキーと値のペアを含むオブジェクト。構成可能なさまざまなプロパティについては、 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.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を使用signInとエラーが発生しsignInprompt: 'none'オプション。

gapi.auth2.AuthorizeConfig

gapi.auth2.authorizeメソッドのさまざまな構成パラメーターを表すインターフェース。

プロパティ
client_id string必須。 Google DevelopersConsoleで検出および作成されたアプリのクライアントID。
scope string必須。スペースで区切られた文字列として要求するスコープ。
response_type stringスペースで区切られた応答タイプのリスト。デフォルトは'permission'です。可能な値は次のとおりです。
  • id_token 、IDトークンを取得します
  • アクセストークンを取得するためのpermission (またはtoken
  • code 、認証コードを取得する
prompt string同意フローに特定のモードを強制します。可能な値は次のとおりです。
  • consent
    承認サーバーは、情報をアプリケーションに返す前に、ユーザーに同意を求めるプロンプトを表示します。
  • select_account
    承認サーバーは、ユーザーにGoogleアカウントを選択するように求めます。これにより、複数のアカウントを持つユーザーは、現在のセッションを持つ可能性のある複数のアカウントから選択できます。
  • none
    許可サーバーは、認証画面またはユーザー同意画面を表示しません。ユーザーがまだ認証されておらず、要求されたスコープに以前に同意していない場合は、エラーが返されます。
    場合はcode 、応答タイプと要求され、返されたコードは、唯一のために交換可能となりますaccess_token 、ありませんrefresh_token
cookie_policy stringサインインCookieを作成するドメイン。 URI、 single_host_origin 、またはnoneか。指定されていsingle_host_origin場合、デフォルトはsingle_host_originです。
hosted_domain stringユーザーが所属する必要のあるGSuiteドメインはサインインします。これはクライアントによる変更の影響を受けやすいため、返されたユーザーのホストドメインプロパティを必ず確認してください。
login_hint stringサインインフローで事前に選択するユーザーの電子メールまたはユーザーID。これは、 prompt: "none"が使用されてprompt: "none"ない限り、ユーザーが変更する可能性がありprompt: "none"
include_granted_scopes booleanユーザーがアプリに以前に付与したすべてのスコープを含むアクセストークンをリクエストするか、現在の呼び出しでリクエストされたスコープのみをリクエストするか。デフォルトはtrueです。

gapi.auth2.AuthorizeResponse

応答は、 gapi.auth2.authorizeメソッドのコールバックに返されました。

プロパティ
access_token string付与されたアクセストークン。 permissionまたはtokenresponse_type指定された場合にのみ存在しtoken
id_token string付与されたIDトークン。場合にのみ存在id_token指定されましたresponse_type
code string付与された認証コード。 response_typecodeが指定されている場合にのみ存在します。
scope stringアクセストークンで付与されたスコープ。 permissionまたはtokenresponse_type指定された場合にのみ存在しtoken
expires_in numberアクセストークンの有効期限が切れるまでの秒数。 permissionまたはtokenresponse_type指定された場合にのみ存在しtoken
first_issued_at numberユーザーが最初に要求されたスコープを付与したタイムスタンプ。 permissionまたはtokenresponse_type指定された場合にのみ存在しtoken
expires_at numberアクセストークンの有効期限が切れるタイムスタンプ。 permissionまたはtokenresponse_type指定された場合にのみ存在しtoken
error stringリクエストが失敗した場合、これにはエラーコードが含まれます
error_subtype stringリクエストが失敗した場合、これには、返されたエラーコードへの追加情報が含まれる可能性があります。