Authentication
The authentication helpers centralize how the library obtains Google API credentials and builds service clients.
AuthStrategy
Protocol
Protocol defining a single method:
get_credentials() -> google.auth.credentials.Credentials
Implementations provide refreshed Google credentials.
AuthMethod
Enum
AuthMethod
selects how credentials are acquired. Currently only:
USER_OAUTH
– interactive OAuth flow for end users. If you'd like to learn how to use this authentication method, please refer to the Google sheets OAuth documentation.
AuthConfig
Pydantic model configuring authentication.
Field | Type | Description |
---|---|---|
method |
AuthMethod |
Strategy used to obtain credentials. |
scopes |
Sequence[str] |
OAuth scopes requested. Defaults to Sheets and Drive access. |
client_secrets_file |
str or None |
Path to OAuth client JSON when using user OAuth. |
token_cache_file |
str |
Location to store the refreshable token. |
local_server_port |
int |
Port used by the OAuth local server. 0 picks a free port. |
get_credentials(cfg: AuthConfig)
Resolve credentials using the configured method. For USER_OAUTH
it
launches the local web server flow and caches the resulting token.
get_sheets_service(cfg: AuthConfig)
Return an authenticated googleapiclient.discovery.Resource
for the Sheets API.
get_drive_service(cfg: AuthConfig)
Return an authenticated googleapiclient.discovery.Resource
for the Drive API.
UserOAuthConfig
Dataclass used by the user OAuth strategy.
Field | Type | Description |
---|---|---|
client_secrets_file |
str |
OAuth client secret file. |
token_cache_file |
str |
Where to cache the token. |
scopes |
Sequence[str] |
Scopes requested. |
local_server_port |
int |
Port for the local callback server. |
UserOAuthStrategy
Strategy implementing the interactive OAuth flow.
get_credentials()
Reads cached credentials if present, otherwise acquires a new token and persists the resulting token for reuse.