В настоящее время я работаю с приложением R Shiny, которое использует googlesheets4 для чтения данных из GoogleSheet. Я признаю, что аутентификация важна для доступа к GoogleSheets, поэтому я попытался аутентифицировать приложение, используя приведенный ниже код в моем файле app.R (электронная почта и ключ API удалены для конфиденциальности):
### AUTHENTICATE FOR GOOGLE SHEETS ACCESS ###
sheets_auth(
email = "MY EMAIL",
path = NULL,
scopes = "https://www.googleapis.com/auth/spreadsheets",
cache = gargle::gargle_oauth_cache(),
use_oob = gargle::gargle_oob_default(),
token = "MY API KEY"
)
Когда я запускаю Локальная панель инструментов с этим кодом сначала загружает веб-страницу, запрашивающую этот вход в Google, и проверяет подлинность API Tidyverse: снимок экрана API Tidyverse .... После входа в систему приложение открывается в отдельном окне. прекрасно.
Однако я не хочу, чтобы пользователи что-либо аутентифицировали при использовании моей панели мониторинга после публикации. В идеале я хотел бы, чтобы необходимая информация, включенная в код Shiny, позволяла приложению самостоятельно проверять доступ к GoogleSheet.
Я очень новичок в googlesheets4 и API в целом, поэтому ценим всех и каждого руководство по получению правильных учетных данных в мой файл app.R.
Спасибо!
ОБНОВЛЕНИЕ ... 4.23.20
После использования https://gargle.r-lib.org/articles/non-interactive-auth.html#provide -a-service-account-token-direct
Мне удалось почти полностью решить эту проблему. Последнее препятствие на этапе публикации, где я получаю эту ошибку при запуске приложения:
Ошибка: .auth не найден Код, как у меня сейчас:
### AUTHENTICATE FOR GOOGLE SHEETS ACCESS ###
library(gargle)
library(googleAuthR)
library(searchConsoleR)
library(googledrive)
# Approach #1: use an option.
# Either specify the user:
options(gargle_oauth_email = "MY EMAIL")
# INSERT JSON FILE FROM GOOGLE API SERVICE ACCOUNT
drive_auth(path = "FTRjsonGoogleAPI.json")
options(gargle_quiet = FALSE)