R/GoogleSheets4 非交互式会话

3

在R中使用googlesheets4时,我在控制台中使用sheets_auth(),它的效果很好。但是当我尝试在R markdown中运行并尝试编织时,我似乎无法获取凭据。有人能帮忙解决这个问题吗?我已经参考了googlesheets4的vignettes,但好像还是不太明白。


你找到解决方案了吗? - Diya
我没有这样做。最终,我只是下载并在 Excel 中本地使用了该工作表。 - Armin Thomas
1个回答

0

这对我有效

gs4_auth(path = "xxxxxxxxxxxxxxxx.json")

它不返回任何东西,但之后我能够使用sheet_write()在我的表格中写入数据。

要在json文件中获取凭据,您需要按照以下步骤进行:

从开发者控制台,在目标GCP项目中,转到IAM和管理>服务帐户。
给它一个体面的名称和描述。
例如,用于创建googledrive文档的服务帐户的名称为“googledrive-docs”,描述为“生成googledrive文档时使用”。
服务帐户权限。您是否需要在此处执行任何操作取决于您正在针对的API。您还可以稍后修改角色并逐步解决此问题。
例如,用于创建googledrive文档的服务帐户没有任何显式角色。
用于测试bigrquery的服务帐户具有BigQuery Admin和Storage Admin角色。
向用户授予对此服务帐户的访问权限?到目前为止,我还没有这样做,所以请随意不要在这里做任何事情。或者,如果您知道这对您有用,则可以这样做。
创建密钥并下载为JSON。当我们在gargle和使用gargle的软件包的文档中谈论“服务帐户令牌”时,此文件就是我们的意思。gargle :: credentials_service_account()期望此文件的路径。
请注意,此JSON文件保存敏感信息。将其视为用户名和密码组合!此文件保存可能具有很大权力且不会过期的凭据。
考虑以自动发现应用程序默认凭据搜索策略的方式存储此文件。有关详细信息,请参见credentials_app_default()。
您会注意到下载的JSON文件具有可怕的名称,因此有时我会创建一个符号链接,使用服务帐户的名称,以便更容易告诉这个文件是什么。
记得授予此服务帐户对您计划访问的任何资源所需的权限,例如特定Google表格上的读取或写入权限。服务帐户与您作为Google用户没有正式关系,并且不会自动继承权限。

(从这里复制https://gargle.r-lib.org/articles/get-api-credentials.html#service-account-token


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接