When I use googlesheets4 in R, I use sheets_auth() in the console and it works fine. But when I try to run it in R markdown, and when I try to knit, I cannot seem to get the credentials. Can someone walk me through the process? I've gone to the vignettes for googlesheets4 but cannot seem to understand it.
问问题
99 次
1 回答
0
这对我有用
gs4_auth(path = "xxxxxxxxxxxxxxxx.json")
它不返回任何东西,但之后我可以在我的工作表中写入数据sheet_write()
要获取 json 文件中的凭据,您必须执行以下步骤:
- 在 Developers Console 中,在目标 GCP 项目中,转到 IAM & Admin > Service accounts。
- 给它一个像样的名称和描述。
- 例如,用于创建 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)
于 2021-11-21T02:43:19.897 回答