【发布时间】:2023-02-15 13:54:39
【问题描述】:
感觉我可能在这里遗漏了一些东西。我希望使用 url 在闪亮的应用程序中显示来自我的谷歌驱动器的图像。我计划使用服务帐户从我的驱动器访问图像。我为此准备的简单代码如下。文件ID在此处的url中留空。
library(shiny)
library(tidyverse)
library(googledrive)
drive_auth(path = "client-secret.json")
ui <- fluidPage(
h4("Embedded image"),
uiOutput("img")
)
server <- function(input, output, session) {
output$img <- renderUI({
tags$img(src = "https://drive.google.com/uc?export=view&id= #image_id# ")
})
}
shinyApp(ui, server)
如果我将其公开,我正在使用的链接就可以了;但是由于安全问题,我想我可以在我的谷歌项目中使用我的服务帐户访问私人链接。我使用 similar approach to this 访问过很多次工作表。所以我真的认为这很简单
到目前为止我做了什么:
- 将 Google Drive API 添加到我的项目中
- 创建服务帐户并授予其编辑权限
- 共享访问服务帐户的文件夹
- 确保我使用https://drive.google.com/uc?export=view&id=访问图像
- 尝试了 png 和 jpg 文件类型
这没有产生任何结果。为了检查我的理智,我继续并确保我可以以类似的方式使用该服务帐户访问 googlesheets。
gs4_auth(path = "client-secret.json")
URL <- #Sheet url
read_sheet(URL,sheet="Sheet1")
这与服务帐户的预期一样正常。我不是 100% 确定有什么区别,或者我是否可以加载私人图像(将服务帐户添加为文件夹和图像的编辑器)。
在我继续努力的同时,任何意见都在这里表示赞赏。
【问题讨论】:
-
你从哪里得到那个端点?我认为你应该使用 https://www.googleapis.com/drive/v3/files/fileId/export
-
@DaImTo 该端点来自this post here。它似乎仍然适用于公众形象。查看您指定的方法here,它似乎在导出和离开 google 工作空间方面都存在问题。这意味着在尝试加载图像时我没有闪亮的运气
标签: r shiny google-api google-drive-api