pha*_*man 5 r google-sheets shiny googlesheets4
我知道还有一些其他类似的问题(例如,这里和这里),但我想我会再试一次,因为其他人还没有得到很多答案。
我有一个 Shiny 应用程序,允许用户通过该应用程序提供输入,但这些用户需要跳过身份验证步骤。在以前的版本中,googlesheets我公开了该表(对任何有链接的人)并避免了一些身份验证过程。在更新过程中,googlesheets4我在将更新的应用程序部署到shinyapps.io 时遇到了权限问题。这是我尝试过的内容以及得到的结果的总结。任何指示将不胜感激。
首先,根据本文中的建议,我创建了一个服务gargle帐户,下载了一个 JSON 服务帐户令牌(格式为“project-name-12345678abc1.json”),并将其(暂时)保存在父应用程序文件夹中的下假设它需要与应用程序包一起上传。然后我启用了 Google Sheets API。
我已将以下命令放在应用程序的前面,位于任何实质性内容之前:
gs4_deauth(),因为谷歌表格对任何有链接的人都是公开的,因此可能不需要令牌。
继这篇文章之后,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。
关于我可能会缺少什么的任何想法?该应用程序在本地运行良好。
任何帮助表示赞赏。谢谢!
此问题已使用此(已关闭)Github 问题中确定的方法得到解决。
关键是严格遵循以下步骤:
gs4_auth(cache = ".secrets") 一次,在浏览器中本地运行应用程序。gs4_auth(cache = ".secrets", email = TRUE, use_oob = TRUE).我还清除了之前保存的令牌,这可能很重要,但很难知道。
正如 Github 讨论中所述,包含use_oob = TRUE可能不是必要的。此外,漱口网站上的非交互式身份验证文章详细介绍了这种方法。
| 归档时间: |
|
| 查看次数: |
927 次 |
| 最近记录: |