These functions give more control over and visibility into the auth configuration than gs4_auth() does. gs4_auth_configure() lets the user specify their own:

  • OAuth app, which is used when obtaining a user token.

  • API key. If googlesheets4 is de-authorized via gs4_deauth(), all requests are sent with an API key in lieu of a token. See the vignette How to get your own API credentials for more. If the user does not configure these settings, internal defaults are used. gs4_oauth_app() and gs4_api_key() retrieve the currently configured OAuth app and API key, respectively.

gs4_auth_configure(app, path, api_key)





OAuth app, in the sense of httr::oauth_app().


JSON downloaded from Google Cloud Platform Console, containing a client id (aka key) and secret, in one of the forms supported for the txt argument of jsonlite::fromJSON() (typically, a file path or JSON string).


API key.


  • gs4_auth_configure(): An object of R6 class gargle::AuthState, invisibly.

  • gs4_oauth_app(): the current user-configured httr::oauth_app().

  • gs4_api_key(): the current user-configured API key.

See also

Other auth functions: gs4_auth(), gs4_deauth()


# see and store the current user-configured OAuth app (probaby `NULL`) (original_app <- gs4_oauth_app())
# see and store the current user-configured API key (probaby `NULL`) (original_api_key <- gs4_api_key())
if (require(httr)) { # bring your own app via client id (aka key) and secret google_app <- httr::oauth_app( "my-awesome-google-api-wrapping-package", key = "YOUR_CLIENT_ID_GOES_HERE", secret = "YOUR_SECRET_GOES_HERE" ) google_key <- "YOUR_API_KEY" gs4_auth_configure(app = google_app, api_key = google_key) # confirm the changes gs4_oauth_app() gs4_api_key() # bring your own app via JSON downloaded from Google Developers Console # this file has the same structure as the JSON from Google app_path <- system.file( "extdata", "fake-oauth-client-id-and-secret.json", package = "googlesheets4" ) gs4_auth_configure(path = app_path) # confirm the changes gs4_oauth_app() }
#> Loading required package: httr
#> <oauth_app> YOUR_PROJECT_ID_GOES_HERE #> key: YOUR_CLIENT_ID_GOES_HERE #> secret: <hidden>
# restore original auth config gs4_auth_configure(app = original_app, api_key = original_api_key)