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

<ph type="x-smartling-placeholder">

このリファレンスでは、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(onInitonError

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

引数
onInit 関数が完全に終了したときに GoogleAuth オブジェクトで呼び出される 初期化されます。
onError error プロパティを含むオブジェクトで呼び出される関数。 GoogleAuth が初期化に失敗した場合。
戻り値
Promise onInit のときに履行される Promise。 関数が終了したか、初期化エラーが発生した場合は拒否されます。この問題は、 onInit 関数からの戻り値(存在する場合)。
<ph type="x-smartling-placeholder">

エラーコード

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_originnone。デフォルトは 指定しない場合は 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 モード。デフォルトでは同意フローが開きます 表示されます。有効な値は popupredirect です。
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 以下のいずれか:
  • gapi.auth2.SignInOptions オブジェクト ログイン パラメータの Key-Value ペアを格納します。例:
    {
      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');
戻り値
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">
    </ph>
  • consent
    認可サーバーが、戻る前にユーザーに同意を求める 情報をアプリケーションに提供します。
  • select_account
    認可サーバーが、Google アカウントを選択するようにユーザーに求めます。この 複数のアカウントを持っているユーザーが複数のアカウントから選択できるようになる 現在のセッションが表示されている可能性があります。
  • none非推奨
    認可サーバーには認証やユーザーの同意は表示されません。 画面ユーザーがまだ認証されておらず、 ユーザーが以前にリクエストされたスコープに同意していないことを表します。
    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 ユーザーが署名されたときに履行される 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">
    </ph>
  • consent
    認可サーバーが、戻る前にユーザーに同意を求める 情報をアプリケーションに提供します。
  • select_account
    認可サーバーが、Google アカウントを選択するようにユーザーに求めます。この 複数のアカウントを持っているユーザーが複数のアカウントから選択できるようになる 現在のセッションが表示されている可能性があります。
で確認できます。 <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">
    </ph>
  • 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 再読み込みされた Promisegapi.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
}
次のオプションを指定できます。
パラメータ
スコープ ユーザーのログイン時にリクエストするスコープ(デフォルト: profile)。
ボタンの幅(ピクセル単位)(デフォルト: 120)。
height ボタンの高さのピクセル単位(デフォルト: 36)。
Longtitle 「Google でログイン」などの長いラベルを表示する、 「ログイン」(デフォルト: false)。長いタイトルには ボタンの幅をデフォルトから大きくする必要があります。
テーマ ボタンのカラーテーマ: light または dark(デフォルト: light)。
onsuccess ユーザーが正常にログインしたときに呼び出されるコールバック関数。 この関数は 1 つの引数を取ります。つまり、 gapi.auth2.GoogleUser(デフォルト: none)。
onfailure ログインが失敗したときに呼び出すコールバック関数。この関数 引数は取りません(デフォルト: none)。

高度

<ph type="x-smartling-placeholder">

gapi.auth2.authorize(params, callback)

1 回限りの OAuth 2.0 認証を行います。使用するパラメータによっては、ウィンドウが開き、 ポップアップを表示するか、リクエストされた応答をユーザーの操作なしで自動的に読み込もうとします。

この方法は、次のようなユースケースに役立ちます。

  • アプリケーションで Google API エンドポイントを一度リクエストするだけで済みます。たとえば、 最初にログインしたときに、お気に入りの YouTube 動画が表示されます。
  • アプリケーションに独自のセッション管理インフラストラクチャがあり、 バックエンドでユーザーを識別するために 1 回だけ ID トークン。
  • 同じページ内で複数のクライアント ID が使用されている。
で確認できます。 <ph type="x-smartling-placeholder">
引数
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">
    </ph>
  • ID トークンを取得する id_token
  • permission(または token): アクセス トークンを取得します。
  • code: 認証コードを取得します。
prompt string 同意フローに特定のモードを強制的に適用します。可能な値は次のとおりです。 <ph type="x-smartling-placeholder">
    </ph>
  • consent
    認可サーバーが、戻る前にユーザーに同意を求める 情報をアプリケーションに提供します。
  • select_account
    認可サーバーが、Google アカウントを選択するようにユーザーに求めます。この 複数のアカウントを持っているユーザーが複数のアカウントから選択できるようになる 現在のセッションが表示されている可能性があります。
  • none
    認可サーバーには認証やユーザーの同意は表示されません。 画面ユーザーがまだ認証されておらず、 ユーザーが以前にリクエストされたスコープに同意していないことを表します。
    レスポンス タイプとして code をリクエストした場合、返されるコードは refresh_token ではなく access_token と交換可能。 <ph type="x-smartling-placeholder">
cookie_policy string ログイン Cookie を作成するドメイン。URI は single_host_originnone。デフォルトは 指定しない場合は 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_tokenresponse_type
code string 付与された認可コード。coderesponse_type
scope string アクセス トークンで付与されるスコープ。permission または response_typetoken が指定されています。
expires_in number アクセス トークンが期限切れになるまでの秒数。permission の場合のみ表示 response_typetoken が指定されている。
first_issued_at number リクエストされたスコープをユーザーが最初に付与したタイムスタンプ。次の場合にのみ表示 response_typepermission または token が指定されている。
expires_at number アクセス トークンが期限切れになるタイムスタンプ。permission の場合のみ表示 response_typetoken が指定されている。
error string リクエストが失敗した場合、ここには エラーコード
error_subtype string リクエストが失敗した場合は、エラーコードに追加情報が含まれる場合があります。 返されます。