首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用googlesheets4通过闪亮的应用授权非交互地使用googlesheet

使用googlesheets4通过闪亮的应用授权非交互地使用googlesheet
EN

Stack Overflow用户
提问于 2020-09-02 06:04:05
回答 1查看 537关注 0票数 4

我知道还有几个类似的问题也是如此(比如这里这里),但我想我应该再试一次,因为其他问题没有得到多少答案。

我有一个闪亮的应用程序,它允许用户通过应用程序提供输入,但是这些用户需要跳过认证步骤。在上一个版本的googlesheets中,我公开了表单(对任何有链接的人),并避免了一些身份验证过程。在更新到googlesheets4时,我遇到了将更新的应用程序部署到shinyapps.io时遇到的权限问题。这是我尝试过的,以及我得到的结果的总结。任何指示都将不胜感激。

首先,基于文章中的建议,我创建了一个服务帐户,下载了一个JSON服务帐户令牌(格式为“project-name-12345678abc 1.json”),并将其保存在父应用程序文件夹中,假设它需要与应用程序包一起上传。然后我启用了。

我在应用程序的前面放置了以下命令,先于任何重要的命令:

  1. gs4_deauth(),因为google对任何有链接的人都是公开的,因此可能不需要令牌。
  2. 继本文gs4_auth(path = "project-name-12345678abc1.json").我还添加了scopes参数(如下所示)和use_oob=TRUE
  3. credentials_service_account(scopes = "https://www.googleapis.com/auth/spreadsheets", path = "project-name-12345678abc1.json")
  4. credentials_app_default(path = "project-name-12345678abc1.json")

结果

大多数组合都会给我带来错误,说“不能获得谷歌凭证”,然后建议我看一下漱口网站上的非交互式文章。一个例外是尝试3,它提供了以下错误消息--奇怪的是,它提供了以下错误消息:

警告:错误:客户端错误:(403) PERMISSION_DENIED

  • 客户端没有足够的权限。这可能是因为OAuth令牌没有正确的作用域,客户端没有权限,或者客户端项目没有启用API。

对我可能错过了什么有什么想法吗?该应用程序在本地运行良好。

任何帮助都是非常感谢的。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-07 21:29:59

使用这个(已结束的) Github问题中确定的方法解决了这个问题。

关键是准确地遵循以下步骤:

  1. 调用gs4_auth(cache = ".secrets") once,在浏览器中本地运行该应用程序。
  2. gs4_auth(cache = ".secrets", email = TRUE, use_oob = TRUE)代替上面的线。
  3. 将应用程序部署到shinyapp。

我还清除了先前保存的令牌,这可能是很重要的,但很难知道。

正如在Github讨论中所指出的,可能没有必要包括use_oob = TRUE。此外,这种方法在漱口站点上的非交互方式文章中有详细介绍。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63699558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档