【问题标题】:R/googlesheets4 non-interactive sessionR/googlesheets4 非交互式会话
【发布时间】:2020-10-27 07:22:25
【问题描述】:

当我在 R 中使用 googlesheets4 时,我在控制台中使用 sheet_auth() 并且它工作正常。但是当我尝试在 R markdown 中运行它时,当我尝试编织时,我似乎无法获得凭据。有人可以指导我完成整个过程吗?我已经查看了 googlesheets4 的小插曲,但似乎无法理解。

【问题讨论】:

  • 你找到解决办法了吗?
  • 好吧,我没有。我最终只是从 Excel 下载并在本地使用工作表。

标签: r api google-sheets token googlesheets4


【解决方案1】:

这对我有用

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 的文档中谈论“服务帐户令牌”时,这个文件就是我们的意思 和使用漱口水的包裹。漱口::credentials_service_account() 需要此文件的路径。
  • 感谢此 JSON 文件包含敏感信息。将其视为用户名和密码组合!此文件包含的凭据 可能有很多权力并且不会过期。
  • 考虑以这样一种方式存储此文件,以便应用程序默认凭据搜索自动发现它 战略。有关详细信息,请参阅 credentials_app_default()。
  • 您会注意到下载的 JSON 文件的名称很糟糕,因此有时我会创建一个使用服务帐户名称的符号链接,以 更容易分辨这个文件是什么。
  • 请记住授予此服务帐户对您计划访问的任何资源的必要权限,例如,对 特定的 Google 表格。服务帐号没有正式关系 以 Google 用户的身份授予您,并且不会自动继承权限。

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

【讨论】:

    猜你喜欢
    • 2012-10-18
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 2012-02-02
    相关资源
    最近更新 更多