GoogleSignInOptions.Builder

public final class GoogleSignInOptions.Builder


Builder for GoogleSignInOptions.

Summary

Public constructors

Default Builder for GoogleSignInOptions which starts with clean configuration.

Builder(@NonNull GoogleSignInOptions googleSignInOptions)

A Builder for GoogleSignInOptions which you can specify one of the default configurations Google (will) provide and make additional configurations based on it. e.g.DEFAULT_SIGN_IN.

Public methods

GoogleSignInOptions.Builder

Specifies additional sign-in options via the given extension.

GoogleSignInOptions

Builds the GoogleSignInOptions object.

GoogleSignInOptions.Builder

Specifies that email info is requested by your application.

GoogleSignInOptions.Builder

Specifies that user ID is requested by your application.

GoogleSignInOptions.Builder

Specifies that an ID token for authenticated users is requested.

GoogleSignInOptions.Builder

Specifies that user's profile info is requested by your application.

GoogleSignInOptions.Builder
@CanIgnoreReturnValue
requestScopes(Scope scope, Scope[] scopes)

Specifies OAuth 2.0 scopes your application requests.

GoogleSignInOptions.Builder

Specifies that offline access is requested.

GoogleSignInOptions.Builder
@CanIgnoreReturnValue
requestServerAuthCode(
    String serverClientId,
    boolean forceCodeForRefreshToken
)

Specifies that offline access is requested.

GoogleSignInOptions.Builder

Specifies an account name on the device that should be used.

GoogleSignInOptions.Builder

Specifies a hosted domain restriction.

Public constructors

Builder

public Builder()

Default Builder for GoogleSignInOptions which starts with clean configuration.

If you are trying to implement Sign In, i.e. you want to get back user identity, you can start with new GoogleSignInOptions(GoogleSignInOptions.DEFAULT_SIGN_IN),

Builder

public Builder(@NonNull GoogleSignInOptions googleSignInOptions)

A Builder for GoogleSignInOptions which you can specify one of the default configurations Google (will) provide and make additional configurations based on it. e.g.DEFAULT_SIGN_IN.

Public methods

addExtension

@CanIgnoreReturnValue
public GoogleSignInOptions.Builder addExtension(GoogleSignInOptionsExtension extension)

Specifies additional sign-in options via the given extension.

Parameters
GoogleSignInOptionsExtension extension

A sign-in extension used to further configure API specific sign-in options. Supported values include: com.google.android.gms.games.Games.GamesOptions.

build

public GoogleSignInOptions build()

Builds the GoogleSignInOptions object.

requestEmail

@CanIgnoreReturnValue
public GoogleSignInOptions.Builder requestEmail()

Specifies that email info is requested by your application. Note that we don't recommend keying user by email address since email address might change. Keying user by ID is the preferable approach.

requestId

@CanIgnoreReturnValue
public GoogleSignInOptions.Builder requestId()

Specifies that user ID is requested by your application.

requestIdToken

@CanIgnoreReturnValue
public GoogleSignInOptions.Builder requestIdToken(String serverClientId)

Specifies that an ID token for authenticated users is requested. Requesting an ID token requires that the server client ID be specified.

Parameters
String serverClientId

The client ID of the server that will verify the integrity of the token.

requestProfile

@CanIgnoreReturnValue
public GoogleSignInOptions.Builder requestProfile()

Specifies that user's profile info is requested by your application.

requestScopes

@CanIgnoreReturnValue
public GoogleSignInOptions.Builder requestScopes(Scope scope, Scope[] scopes)

Specifies OAuth 2.0 scopes your application requests. See Scopes for more information.

Parameters
Scope scope

An OAuth 2.0 scope requested by your app.

Scope[] scopes

More OAuth 2.0 scopes requested by your app.

requestServerAuthCode

@CanIgnoreReturnValue
public GoogleSignInOptions.Builder requestServerAuthCode(String serverClientId)

Specifies that offline access is requested. Requesting offline access requires that the server client ID be specified.

You don't need to use requestIdToken when you use this option. When your server exchanges the code for tokens, an ID token will be returned together (as long as you either use requestEmail or requestProfile along with your configuration).

The first time you retrieve a code, a refresh_token will be granted automatically. Subsequent requests will only return codes that can be exchanged for access token.

Parameters
String serverClientId

The client ID of the server that will need the auth code.

requestServerAuthCode

@CanIgnoreReturnValue
public GoogleSignInOptions.Builder requestServerAuthCode(
    String serverClientId,
    boolean forceCodeForRefreshToken
)

Specifies that offline access is requested. Requesting offline access requires that the server client ID be specified.

You don't need to use requestIdToken when you use this option. When your server exchanges the code for tokens, an ID token will be returned together (as long as you either use requestEmail or requestProfile along with this configuration).

Parameters
String serverClientId

The client ID of the server that will need the auth code.

boolean forceCodeForRefreshToken

If true, the granted code can be exchanged for an access token and a refresh token. The first time you retrieve a code, a refresh_token will be granted automatically. Subsequent requests will require additional user consent. Use false by default; only use true if your server has suffered some failure and lost the user's refresh token.

setAccountName

@CanIgnoreReturnValue
public GoogleSignInOptions.Builder setAccountName(String accountName)

Specifies an account name on the device that should be used. If this is never called, the client will use the current default account for this application.

Parameters
String accountName

The account name on the device that should be used to sign in.

setHostedDomain

@CanIgnoreReturnValue
public GoogleSignInOptions.Builder setHostedDomain(String hostedDomain)

Specifies a hosted domain restriction. By setting this, sign in will be restricted to accounts of the user in the specified domain.

Parameters
String hostedDomain

domain of the user to restrict (for example, "mycollege.edu"),