我試圖使用googleAuthR
從Google電子表格中請求數據。我需要使用此庫而不是Jenny Bryan的googlesheets
,因爲請求是具有多用戶身份驗證的閃亮應用程序的一部分。當請求範圍不包含空格(如"Sheet1!A:B"
請求成功然而,當標籤名稱包含空格(如"'Sheet 1'!A:B"
或"\'Sheet 1\'!A:B"
,請求將失敗並拋出這個錯誤:使用googleAuthR,httr和jsonlite向Google表格API失敗的HTTP請求
Request Status Code: 400
Error : lexical error: invalid char in json text.
<!DOCTYPE html> <html lang=en>
(right here) ------^
馬克·埃德蒙森的googleAuthR
使用jsonlite
爲。解析JSON我認爲這個錯誤是從jsonlite
來了,但我在爲如何解決它的一個損失這裏是一個小例子來重現問題:
library(googleAuthR)
# scopes
options("googleAuthR.scopes.selected" = "https://www.googleapis.com/auth/spreadsheets.readonly")
# client id and secret
options("googleAuthR.client_id" = "XXXX")
options("googleAuthR.client_secret" = "XXXX")
# request
get_data <- function(spreadsheetId, range) {
l <- googleAuthR::gar_api_generator(
baseURI = "https://sheets.googleapis.com/v4/",
http_header = 'GET',
path_args = list(spreadsheets = spreadsheetId,
values = range),
pars_args = list(majorDimension = 'ROWS',
valueRenderOption = 'UNFORMATTED_VALUE'),
data_parse_function = function(x) x)
req <- l()
req
}
# authenticate
gar_auth(new_user = TRUE)
# input
spreadsheet_id <- "XXXX"
range <- "'Sheet 1'!A:B"
# get data
df <- get_data(spreadsheet_id, range)
如何格式化對於T range
變量他請求工作?先謝謝您的幫助。
URLendcoding是最新版本的googleAuthR,0.6.2 – MarkeD