【发布时间】:2016-01-25 23:47:42
【问题描述】:
我想使用 Google google 电子表格或表单 + 电子表格来收集 R 用户的回复并将其发送到电子表格。
这是一个最小的 Google 表单:https://docs.google.com/forms/d/1tz2RPftOLRCQrGSvgJTRELrd9sdIrSZ_kxfoFdHiqD4/viewform
我想我会像这样使用 Jenny Bryan 的 googlesheets 包:
library(googlesheets);library(dplyr)
(my_sheets <- gs_ls())
minresp <- gs_title("minimal (Responses)")
minresp %>% gs_add_row(ws = "dat", input = mtcars[20, 1:2])
效果很好,但如果我包含代码并且其他人(即不是我的人)尝试使用该代码:
Error in gs_lookup(., "sheet_title", verbose) :
"minimal (Responsess)" doesn't match sheet_title of any sheet returned by gs_ls() (which should reflect user's Google Sheets home screen).
所以在小插曲中我看到了不同的地方:
# 需要访问不属于您的工作表吗?
# 如果您知道,请通过密钥访问它!
我认为这是允许其他人将数据输入电子表格的门票,所以我尝试了:
minresp2 <- gs_key("1xemHzTdeqgMuGbsP6oqDYuMu4PymBdw7k7kMC_-Dsi8")
屈服:
Authentication will be used.
Error in gs_lookup(., "sheet_key", verbose) :
"1xemHzTdeqgMuGbsP6oqDYuMu4PymBdw7k7kMC_-Dsi8" doesn't match sheet_key of any sheet returned by gs_ls() (which should reflect user's Google Sheets home screen).
如果我登录并通过 google 进行身份验证,这一切都有效,但我怎样才能做到这一点,以便用户可以添加到我的电子表格中。我不在乎一个人使用什么方法/包。如果用户只能通过函数中的 use 来编辑电子表格,而不是简单地查看源代码并获取 url 并手动编辑,那就太好了,但这不是问题。
基本上我希望能够以电子表格(或其他数据形式)收集来自 R 用户的响应,并附加到每个新用户。
【问题讨论】:
-
您是否愿意让任何人都可以写入工作表?您可以通过使用
gs_key(..., lookup = FALSE)来解决上面的错误:查找。但是您的下一个更大的问题将是有针对性地授予写入权限。 AFAIK 你不能让一个工作表可写,比如说,碰巧有钥匙的人。我想知道这个包github.com/hadley/secure 是否可以用来安全地向您的用户提供 OAuth2 令牌? -
@jennybryan 我想我可以让它是可写的,但这并不理想
-
它对我来说很好用 - 我首先必须运行
gs_auth()然后我刚刚在 A7 中添加了测试:minresp2 <- gs_key("1xemHzTdeqgMuGbsP6oqDYuMu4PymBdw7k7kMC_-Dsi8"); minresp2 <- minresp2 %>% gs_edit_cells(input = c("test"), anchor = "A7", byrow = TRUE)
标签: r google-sheets r-googlesheets