Learn R Programming

googlesheets (version 0.2.0)

gs_auth: Authorize googlesheets

Description

Authorize googlesheets to view and manage your files. You will be directed to a web browser, asked to sign in to your Google account, and to grant googlesheets permission to operate on your behalf with Google Sheets and Google Drive. By default, these user credentials are cached in a file named .httr-oauth in the current working directory, from where they can be automatically refreshed, as necessary.

Usage

gs_auth(token = NULL, new_user = FALSE,
  key = getOption("googlesheets.client_id"),
  secret = getOption("googlesheets.client_secret"),
  cache = getOption("googlesheets.httr_oauth_cache"), verbose = TRUE)

Arguments

token
optional; an actual token object or the path to a valid token stored as an .rds file
new_user
logical, defaults to FALSE. Set to TRUE if you want to wipe the slate clean and re-authenticate with the same or different Google account. This disables the .httr-oauth file in current working directory.
key, secret
the "Client ID" and "Client secret" for the application; defaults to the ID and secret built into the googlesheets package
cache
logical indicating if googlesheets should cache credentials in the default cache file .httr-oauth
verbose
logical; do you want informative messages?

Value

  • an OAuth token object, specifically a Token2.0, invisibly

Details

Most users, most of the time, do not need to call this function explicitly -- it will be triggered by the first action that requires authorization. Even when called, the default arguments will often suffice. However, when necessary, this function allows the user to

  • force the creation of a new token
  • retrieve current token as an object, for possible storage to an.rdsfile
  • read the token from an object or from an.rdsfile
  • provide your own app key and secret -- this requires setting up a new project inhttps://console.developers.google.com{Google Developers Console}
  • prevent caching of credentials in.httr-oauth

In a direct call to gs_auth, the user can provide the token, app key and secret explicitly and can dictate whether interactively-obtained credentials will be cached in .httr_oauth. If unspecified, these arguments are controlled via options, which, if undefined at the time googlesheets is loaded, are defined like so:

[object Object],[object Object],[object Object]

To override these defaults in persistent way, predefine one or more of them with lines like this in a .Rprofile file: options(googlesheets.client_id = "FOO", googlesheets.client_secret = "BAR", googlesheets.httr_oauth_cache = FALSE) See Startup for possible locations for this file and the implications thereof.

More detail is available from https://developers.google.com/identity/protocols/OAuth2InstalledApp{Using OAuth 2.0 for Installed Applications}. See gs_webapp_auth_url and gs_webapp_get_token for functions that execute the "web server application" flow.

Examples

Run this code
## load/refresh existing credentials, if available
## otherwise, go to browser for authentication and authorization
gs_auth()

## force a new token to be obtained
gs_auth(new_user = TRUE)

## store token in an object and then to file
ttt <- gs_auth()
saveRDS(ttt, "ttt.rds")

## load a pre-existing token
gs_auth(token = ttt)       # from an object
gs_auth(token = "ttt.rds") # from .rds file

Run the code above in your browser using DataLab