googlesheets (version 0.2.1)

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 .rds file
  • read the token from an object or from an .rds file
  • provide your own app key and secret -- this requires setting up a new project in 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:

key
Set to option googlesheets.client_id, which defaults to a client ID that ships with the package

secret
Set to option googlesheets.client_secret, which defaults to a client secret that ships with the package

cache
Set to option googlesheets.httr_oauth_cache, which defaults to TRUE

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 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
## Not run: 
# ## 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
# ## End(Not run)

Run the code above in your browser using DataCamp Workspace