【发布时间】:2020-12-21 06:29:14
【问题描述】:
我知道 SO 周围还有其他一些类似的问题(例如,here 和 here),但我想我会再试一次,因为其他人没有得到很多答案。
我有一个 Shiny 应用程序,它允许其用户通过应用程序提供输入,但这些用户需要跳过身份验证步骤。在googlesheets 的先前版本中,我将表格公开(对知道链接的任何人)并避免了一些身份验证过程。在更新到 googlesheets4 时,我在将更新的应用程序部署到 shinyapps.io 时遇到了权限问题。这是我尝试过的内容的摘要,以及我得到的结果。任何指针将不胜感激。
首先,根据this gargle article 中的建议,我创建了一个服务帐户,下载了一个 JSON 服务帐户令牌(格式为“project-name-12345678abc1.json”),并将其(暂时)保存在父级中app 文件夹,假设它需要与 app bundle 一起上传。然后我启用了 Google Sheets API。
我已将以下命令放在应用程序的前面,放在任何实质性内容之前:
-
gs4_deauth(),因为 google 表格对知道链接的任何人都是公开的,因此可能不需要令牌。 -
Following this article,
gs4_auth(path = "project-name-12345678abc1.json")。我还添加了scopes参数(如下)和use_oob=TRUE。 -
credentials_service_account(scopes = "https://www.googleapis.com/auth/spreadsheets", path = "project-name-12345678abc1.json"). -
credentials_app_default(path = "project-name-12345678abc1.json")
结果
大多数组合都给我错误提示“无法获取 Google 凭据”,然后建议我查看漱口网站上的非交互式文章。一个例外是尝试 3,它提供了以下错误消息 - 奇怪的是:
警告:错误:客户端错误:(403) PERMISSION_DENIED
- 客户端没有足够的权限。这可能是因为 OAuth 令牌没有正确的范围,客户端没有 权限,或尚未为客户端项目启用 API。
对我可能遗漏的内容有什么想法吗?该应用程序在本地运行良好。
感谢任何帮助。谢谢!
【问题讨论】:
标签: r google-sheets shiny googlesheets4