首页 > 解决方案 > 使用服务帐户令牌使用 R/googlesheets4 + Rshiny 进行非交互式授权

问题描述

我很茫然,我无法弄清楚如何从这里找到的小插图中获得非交互式授权。对我来说,它似乎应该像将服务帐户 json 文件的路径传递给一样简单gs4_auth(),这在 R-Studio 中确实有效,但因闪亮而失败


library(shiny)
library(DT)
library(tidyverse)
library(lubridate)
library(gargle)
library(googlesheets4)
options(gargle_quiet = FALSE)


# Define UI for application that draws a histogram
ui <- fluidPage(
    titlePanel("Mapper Tracker"),
    DTOutput("trackerTable")
)

# Define server logic required to draw a histogram
server <- function(input, output) {
    
    output$trackerTable <- renderDT({
    
        
        gs4_auth(path = "static-bond-283413-a1eef3c0351d.json")
        
        ss <- gs4_find("mapper_tracker")[[2]]
   
        for(i in 1:10){
            try({
                activity_sheet <- read_sheet(ss,sheet=1)
                hours_sheet <- read_sheet(ss,sheet=2)
                break
            },silent=FALSE)
        }
        
        datatable(hours_sheet,editable="row")
        
    })
}

# Run the application 
shinyApp(ui = ui, server = server)

# Get this output from gargle:

#trying token_fetch()
#trying credentials_service_account()
#adding 'userinfo.email' scope
#service account email: mapper-tracker@static-bond-283413.iam.gserviceaccount.com
#attempt from: googledrive
#trying token_fetch()
#trying credentials_service_account()
#Error: Argument 'txt' must be a JSON string, URL or file.

我试图找出那个错误,我读过的所有内容都说它与fromJSON()调用有关token_fetch()......但是当我运行该文件路径时fromJSON()我没有问题。

标签: rshinygooglesheets4gargle

解决方案


推荐阅读