Generate a request, using knowledge of the Sheets API from its Discovery
Document (https://www.googleapis.com/discovery/v1/apis/sheets/v4/rest
). Use
request_make()
to execute the request. Most users should, instead, use
higher-level wrappers that facilitate common tasks, such as reading or
writing worksheets or cell ranges. The functions here are intended for
internal use and for programming around the Sheets API.
request_generate()
lets you provide the bare minimum of input.
It takes a nickname for an endpoint and:
Uses the API spec to look up the
method
,path
, andbase_url
.Checks
params
for validity and completeness with respect to the endpoint. Usesparams
for URL endpoint substitution and separates remaining parameters into those destined for the body versus the query.Adds an API key to the query if and only if
token = NULL
.
Arguments
- endpoint
Character. Nickname for one of the selected Sheets API v4 endpoints built into googlesheets4. Learn more in
gs4_endpoints()
.- params
Named list. Parameters destined for endpoint URL substitution, the query, or the body.
- key
API key. Needed for requests that don't contain a token. The need for an API key in the absence of a token is explained in Google's document "Credentials, access, security, and identity" (
https://support.google.com/googleapi/answer/6158857?hl=en&ref_topic=7013279
). In order of precedence, these sources are consulted: the formalkey
argument, akey
parameter inparams
, a user-configured API key set up withgs4_auth_configure()
and retrieved withgs4_api_key()
.- token
Set this to
NULL
to suppress the inclusion of a token. Note that, if auth has been de-activated viags4_deauth()
,gs4_token()
will actually returnNULL
.
Value
list()
Components are method
, url
, body
, and token
,
suitable as input for request_make()
.
See also
gargle::request_develop()
, gargle::request_build()
,
gargle::request_make()
Other low-level API functions:
gs4_has_token()
,
gs4_token()
,
request_make()
Examples
req <- request_generate(
"sheets.spreadsheets.get",
list(spreadsheetId = gs4_example("deaths")),
key = "PRETEND_I_AM_AN_API_KEY",
token = NULL
)
req
#> $method
#> [1] "GET"
#>
#> $url
#> [1] "https://sheets.googleapis.com/v4/spreadsheets/1VTJjWoP1nshbyxmL9JqXgdVsimaYty21LGxxs018H2Y?key=PRETEND_I_AM_AN_API_KEY"
#>
#> $body
#> named list()
#>
#> $token
#> NULL
#>