Class GoogleAuthorizationCodeFlow (1.35.0)

public class GoogleAuthorizationCodeFlow extends AuthorizationCodeFlow

Thread-safe Google OAuth 2.0 authorization code flow that manages and persists end-user credentials.

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.

The first step is to call #loadCredential(String) based on the known user ID to check if the end-user's credentials are already known. If not, call #newAuthorizationUrl() and direct the end-user's browser to an authorization page. The web browser will then redirect to the redirect URL with a "code" query parameter which can then be used to request an access token using #newTokenRequest(String). Finally, use #createAndStoreCredential(TokenResponse, String) to store and obtain a credential for accessing protected resources.

The default for the approval_prompt and access_type parameters is null. For web applications that means "approval_prompt=auto&access_type=online" and for installed applications that means "approval_prompt=force&access_type=offline". To override the default, you need to explicitly call Builder#setApprovalPrompt(String) and Builder#setAccessType(String).

Inheritance

java.lang.Object > com.google.api.client.auth.oauth2.AuthorizationCodeFlow > GoogleAuthorizationCodeFlow

Constructors

GoogleAuthorizationCodeFlow(GoogleAuthorizationCodeFlow.Builder builder)

protected GoogleAuthorizationCodeFlow(GoogleAuthorizationCodeFlow.Builder builder)
Parameter
NameDescription
builderGoogleAuthorizationCodeFlow.Builder

Google authorization code flow builder

GoogleAuthorizationCodeFlow(HttpTransport transport, JsonFactory jsonFactory, String clientId, String clientSecret, Collection<String> scopes)

public GoogleAuthorizationCodeFlow(HttpTransport transport, JsonFactory jsonFactory, String clientId, String clientSecret, Collection<String> scopes)
Parameters
NameDescription
transportcom.google.api.client.http.HttpTransport

HTTP transport

jsonFactorycom.google.api.client.json.JsonFactory

JSON factory

clientIdString

client identifier

clientSecretString

client secret

scopesCollection<String>

collection of scopes to be joined by a space separator

Methods

getAccessType()

public final String getAccessType()

Returns the access type ("online" to request online access or "offline" to request offline access) or null for the default behavior of "online".

Returns
TypeDescription
String

getApprovalPrompt()

public final String getApprovalPrompt()

Returns the approval prompt behavior ("auto" to request auto-approval or "force" to force the approval UI to show) or null for the default behavior of "auto".

Returns
TypeDescription
String

newAuthorizationUrl()

public GoogleAuthorizationCodeRequestUrl newAuthorizationUrl()
Returns
TypeDescription
GoogleAuthorizationCodeRequestUrl
Overrides
com.google.api.client.auth.oauth2.AuthorizationCodeFlow.newAuthorizationUrl()

newTokenRequest(String authorizationCode)

public GoogleAuthorizationCodeTokenRequest newTokenRequest(String authorizationCode)
Parameter
NameDescription
authorizationCodeString
Returns
TypeDescription
GoogleAuthorizationCodeTokenRequest
Overrides
com.google.api.client.auth.oauth2.AuthorizationCodeFlow.newTokenRequest(java.lang.String)