Class GoogleAuthorizationCodeFlow (2.7.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
Name Description
builder GoogleAuthorizationCodeFlow.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
Name Description
transport com.google.api.client.http.HttpTransport

HTTP transport

jsonFactory com.google.api.client.json.JsonFactory

JSON factory

clientId String

client identifier

clientSecret String

client secret

scopes Collection<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
Type Description
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
Type Description
String

newAuthorizationUrl()

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

newTokenRequest(String authorizationCode)

public GoogleAuthorizationCodeTokenRequest newTokenRequest(String authorizationCode)
Parameter
Name Description
authorizationCode String
Returns
Type Description
GoogleAuthorizationCodeTokenRequest
Overrides
com.google.api.client.auth.oauth2.AuthorizationCodeFlow.newTokenRequest(java.lang.String)