问题标签 [googlesheets4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
46 浏览

r - 闪亮的领先撇号与 Googlesheets4

我正在编写一个闪亮的应用程序来维护一个 googlesheets 电子表格,并且遇到了一些我在档案中没有找到答案的问题。

问题 1 是在我使用 sheet_append 函数时将前导撇号添加到某些字段(非文本字段),这导致 GS 将字段识别为文本而不是数字/日期。

此屏幕截图显示了 googlesheets 中整数和日期字段的问题...

整数字段

日期字段

电子表格中的相关列已设置为“数字”和“日期”数据类型,但显然 API 只是将所有数据从闪亮发送到 GS 作为文本;有没有办法保留或强制 GS 接收的数据类型?

要保存的数据字符串是这样编译的...

然后我对 GS4 sheet_append 函数做了一个简单的调用......

问题 2 更具有一般性。数据集包含一个 yearmon 数据列(zoo 包),用于过滤数据,并将其显示在 kableExtra 表中(效果很好,看起来很棒).. 但我想禁止显示 yearmon 列表(以保留一些屏幕空间)。有没有办法让列保留在数据集中(用于过滤)但不显示在表中?

下面的屏幕截图... 在此处输入图像描述

对 kableExtra 的调用是...

我试图在过滤后使用这样的管道 [] 对数据进行子集化......

但这只会产生一个错误......

子集错误

任何人都有关于如何将此字段保留在数据集中但不显示在表格中的想法?

彼得

0 投票
0 回答
24 浏览

r - 使用 googlesheets4::read_sheet() 从 googlesheet 导入特定列

我可以读取 A:O 列之间的所有列,但这可能需要指出许多我不关心的列类型。

我可以只指定我关心的 3 列吗?

0 投票
0 回答
45 浏览

r - curl::curl_fetch_memory 中的错误:无法解析主机:sheets.googleapis.com

我在闪亮的应用程序上遇到了 googlesheets4 的问题。每次我用新数据更新工作表时,都会导致我们服务器上的应用程序出错。这是错误日志。

显示主机 sheet.googleapis.com 错误的错误日志:

在此处输入图像描述

0 投票
0 回答
68 浏览

r - 使用 R 或通过 Google Drive 将 ggplot2 plot (.png) 上传到 Google Sheets

嗨,我正在使用 R 中的 googlesheets4 包,我试图弄清楚如何将我正在创建的带有 ggplot2 的图添加到谷歌表格文件中。这些图将不断更新,所以我不想手动执行此操作。据我所知,gs4 包中没有支持此功能的功能(比如说像 upload_image() 函数,我在其中传递工作表 url 和图像的文件名)。

我正在考虑创建我的 ggplots 的本地 .png 文件并以自动脚本将它们上传到 Google Drive,然后将这些 url 指向 google 表格以显示图像=IMAGE("https://drive.google.com/file/d/id23423443242342/view?usp=sharing")(这是表格中的一个函数)但我正在运行成一些问题。

这里的问题是我相信我公司的 google 帐户是私有的,因此这些链接不是公共 URL,我读过这是这种方法的一个问题。无论我使用什么 url,我使用图像功能的单元格都是空白的,因为它的共享设置是私有的。我不确定是否有解决方法,并且我无权更改任何这些共享设置。

我不确定还有哪些其他选项可以让这些图表显示在 Google 表格中?将它们放在那里真的很方便,而且每次他们想看到其中一些图时,不必让人们陷入下载 html rmarkdown 文件的兔子洞,而且我不认为谷歌表中的默认绘图对于我想要完成的事情来说已经足够了。

任何帮助或建议将不胜感激!

0 投票
1 回答
52 浏览

r - 是否可以将谷歌表格中的数据流式传输到 R 中?

是否可以从谷歌表格中获取实时数据到 R 中?

基本上,我有一个谷歌表,我想从中获取数据并将其显示在一个闪亮的应用程序中。但是当谷歌表中的数据发生变化/更新时,它也应该在shinyApp中得到更新。

谢谢

0 投票
1 回答
62 浏览

r - 尝试从 R 写入 Google 表格,无法获得凭据

在过去的 6 个多月里,我使用 googlesheets4 包从 R 到 Google 表格进行阅读和写作,没有任何问题。昨天,突然之间,我开始收到“无法获取 Google 凭据”错误,我似乎无法找到解决方案。

我一直使用 gs4_auth('email address'),没有其他详细信息。

我阅读了有关漱口水的故障排除建议,我还在这里找到了另一个带有建议的线程,但不幸的是,没有什么对我有用。这是我将漱口详细程度更改为“调试”时得到的结果:

尝试token_fetch() 尝试credentials_service_account() 错误捕获token_fetch():参数“txt”必须是 JSON 字符串、URL 或文件。尝试credentials_external_account() 未安装 aws.ec2metadata;无法检测是否在 EC2 实例上运行尝试credentials_app_default() 尝试credentials_gce() 尝试credentials_byo_oauth() 错误捕获token_fetch():继承(令牌,“Token2.0”)不是 TRUE 尝试credentials_user_oauth2() Gargle2.0 初始化尝试访问内部漱口数据:googlesheets4 添加“userinfo.email”范围错误捕获token_fetch():ReadItem:未知类型 50,可能由更高版本的 R 编写

根据此信息,我不知道要更改什么。

我还读到,如果 gargle 保存身份验证数据的缓存已满,则可能会发生这种突然的错误。但我没有找到缓存。我试图运行这个:

需要(漱口) gargle_oauth_sitrep()

我得到: FUN(X[[i]], ...) 中的错误:ReadItem:未知类型 50,可能由更高版本的 R 编写。

我的 R 版本现在是 4.1.2,但之前是 4.1.0。我更新了它,希望它能解决一些问题,但它没有。我还重新安装了一些软件包:curl、openssl、gargle。还是行不通。

我现在没有主意了。任何人都可以帮忙吗?

编辑(已解决):我找到了 gargle 存储身份验证数据的缓存并删除了文件。之后,我再次进行了初始身份验证过程,它现在可以工作了。我会把这个问题留给遇到同样问题的任何人。如果漱口冗长没有其他建议,则可以尝试此解决方案。

0 投票
0 回答
38 浏览

api - R - 用于非交互式会话的 googlesheets4 凭据

我正在尝试在我的手机( https://play.google.com/store/apps/details?id=com.krazeapps.rprogrammingcompiler&hl=en_GB&gl=US)上编写允许使用 Android 应用程序 R Programming Compiler 的代码我使用googlesheets4. R Programming Compiler 是一个不支持交互式程序的批处理编译器。在 RStudio 中,我使用gs4_auth(),然后我所要做的就是从给定的预授权电子邮件地址列表中选择要输入的数字。然后我可以使用sheet_write()现有文件的 url 将数据框写入。我不记得第一次使用该软件包时是否必须执行更多步骤。

这种方法不适用于我的手机,因为它不支持交互式会话。我已经尝试查看gs4_auth()and的文档gs4_config_auth(),但我对编程还是很陌生,对 API、令牌等一无所知,所以我无法使用文档弄清楚该怎么做。gs4_deauth()适用于read_sheet()但不适用于sheet_write().

该应用程序说它可以在运行代码之前接受输入,但我不知道如何正确使用该功能或​​输入应该是什么。我没有包含可重现的代码,但这是一个骨架版本:

该应用程序然后吐出这个错误。

有什么我可以添加到我的代码中的东西,这意味着我可以在交互式会话之外运行此代码,如果是这样,我如何获取所需的信息然后将其放入我的代码中(例如 0Auth 令牌、其他 API 要求)?

0 投票
0 回答
16 浏览

r - 阅读 Google 表格

我有一个 Google 表格,其中包含多个指向其他 Google 表格的嵌入式链接。 在此处输入图像描述

是否可以一起阅读所有这些表格?

0 投票
0 回答
14 浏览

r - R Shiny googlesheets4 -- 使用带有 uiOutput 的 ActionButton

在下面的应用程序中,我正在尝试访问带有名称列表的 Google 表格。该应用程序将显示两个随机名称,用户将选择他们喜欢的名称。发生这种情况时,应用程序会更新 Google 表格,为获胜的名字创建一个“win”,为失败的名字创建一个“loss”。为了开始这个“名字之战”,用户必须选择一个名为“开始一个新名字之战”的按钮。然后两个随机名称显示为单选按钮,同时出现一个提交按钮。用户需要选择提交按钮来记录他们的偏好。

我的问题是“name_choice_submit”按钮,因为我不知道如何存储单选按钮的选择,以便我可以调整 Google 表格。错误发生在if (input$names_button == name1). 我收到消息“参数长度为零。我认为我没有正确调用 names_button,但无法弄清楚。我是 Shiny 的新手,因此非常感谢任何建议。谢谢。

带有数据的 Google 表格

闪亮的错误信息

0 投票
0 回答
20 浏览

r - 使用服务帐户后强制 R googlesheets4 gs4_auth() 使用指定的用户帐户

我正在编写一个简单的脚本,该脚本用于googlesheets4读取一些数据,然后使用漱口水来验证 API 调用。我遇到了gs4_auth()验证错误用户的问题。

我首先运行gs4_auth("example@example.com")以使用我的 Google 帐户进行身份验证,一切正常。

gargle::credentials_service_account()稍后,我通过使用本地服务帐户 json 密钥生成令牌来验证我的 API 调用。这也很好用。

当我在之前对 API 调用进行身份验证后尝试再次运行脚本时,就会出现问题。当我运行gs4_auth()它时,它使用服务帐户凭据,并且read_sheet()调用返回 403 错误。

有没有办法强制gs4_auth()不使用服务帐户凭据。服务帐户的电子邮件与传递给的电子邮件不同,gs4_auth()因此我不希望它使用不匹配的凭据。

我运行了身份验证,options(options(gargle_verbosity = "debug")它提供了以下输出:

随后的 403 错误发生是因为 example@example.com 可以访问 google 工作表,但 example-service-account@project.iam.gserviceaccount.com 没有。