我有一个 ShinyApp,它应该与 Google 表格进行通信(读取和写入)。在本地环境中,代码运行良好,但是当我部署应用程序时,使用 .json 进行谷歌身份验证似乎不起作用。 Shinyapp.io 日志:
gs4_auth("client_secret_mysecret.apps.googleusercontent.com.json") 中的错误: 无法获取 Google 凭据。
我已经尝试了在那里和文档中可以找到的所有内容(我可能做错了某些事情),但我还没有找到解决方案。也许有人有同样的问题。这是我的代码的一部分:(如果您需要更多,请告诉我)
# Path to service account JSON file
json_path <- "my-json-fil.json" # Update this path
# Authenticate using the service account JSON file
gs4_auth(path = json_path, cache = FALSE)
# Google Sheets URL or ID
sheet_url <- "https://docs.google.com/spreadsheets/d/1wqsOXhZawPhX59N2n2c1rt7dLQfHurbxwlIX87QpJk4/edit"
# Player list
players <- c("Spieler1", "Spieler2", "Spieler3", "Spieler4")
# Define training dates
training_dates <- seq(as.Date("2024-07-22"), by = "7 days", length.out = 20)
training_dates <- sort(c(training_dates, seq(as.Date("2024-07-24"), by = "7 days",
length.out = 20))) # Every Wednesday
end_date <- as.Date("2025-04-15")
# Function to load data from Google Sheets
load_attendance_data <- function(sheet_url) {
tryCatch( {
gs4_get(sheet_url) %>%
read_sheet() %>%
mutate(Datum = as.Date(Datum))
},
error = function(e) {
showNotification("Fehler beim Laden der Daten. Verwende lokale Daten.", type = "error")
data.frame(Spieler = rep(players, each = length(training_dates)),
Datum = rep(training_dates, times = length(players)),
Anwesend = FALSE)
}
)
}
# Function to save data to Google Sheets
save_attendance_data <- function(data, sheet_url) {
tryCatch(
{
write_sheet(data, sheet_url, sheet = 1)
showNotification("Daten erfolgreich gespeichert!", type = "message")
},
error = function(e) {
showNotification(paste("Fehler beim Speichern der Daten:", e$message), type =
"error")
}
)
}
如果有人能帮助我,我会很高兴。 谢谢
我发现了错误。还需要谷歌驱动器的验证:
drive_auth(path = json_path)