如何使用R和现有的JSON密钥登录到googlesheets?

如何使用R和现有的JSON密钥登录到googlesheets?,r,google-drive-api,google-sheets-api,googlesheets4,R,Google Drive Api,Google Sheets Api,Googlesheets4,我正在尝试将我的csv文件上载到我的google驱动器/工作表 工作代码:一个窗口弹出,我登录到我的谷歌帐户,然后代码工作完美,文件上传 library(googledrive) library(googlesheets4) dff <- drive_upload('dff.csv', type = "spreadsheet") drive_browse(dff) 库(谷歌硬盘) 图书馆(谷歌地图4) dff服务帐户的行为类似于任何其他普通帐户-它们可以拥有文件并对其拥有权限。i、 e

我正在尝试将我的csv文件上载到我的google驱动器/工作表

工作代码:一个窗口弹出,我登录到我的谷歌帐户,然后代码工作完美,文件上传

library(googledrive)
library(googlesheets4)

dff <- drive_upload('dff.csv', type = "spreadsheet")
drive_browse(dff)
库(谷歌硬盘)
图书馆(谷歌地图4)

dff服务帐户的行为类似于任何其他普通帐户-它们可以拥有文件并对其拥有权限。i、 e.如果您使用您的个人帐户创建文件,并试图使用服务帐户访问该文件,但在此之前未授予相应的权限,则将导致错误

我建议您使用服务帐户与工作表和驱动器API进行通信。为此,您应该将库的v1.0.0版本的
drive\u auth(token=sheets\u token())
替换为
drive\u auth(service\u token='myjson.json')
(如果您使用的是googledrive库v0.1.3)或
drive\u auth(path='myjson.json')

请记住,使用服务帐户创建文件后,如果您计划从任何其他帐户访问这些文件,则必须事先将其共享到您的帐户。您可以在R代码中使用该函数


此外,您可以考虑使用在您的域中使用G套件的情况。此功能将允许服务帐户充当(或“模拟”)域的另一个用户。它执行的每一个操作都将如同“模拟”的主体在执行它一样,包括任何与权限相关的内容。

由Carlesg97提供的解决方案

上传文件后,必须将其共享给所有用户


函数:unused参数不存在该参数(service_token=@Arkadiw对不起-建议的答案适用于googledrive库的v0.1.3版本。请参阅修订的答案(适用于库的最新版本-v1.0.0)使用path时,我的访问仍然被拒绝。我无法上载文件或使用驱动器浏览_browse@Arkadiw您会遇到什么样的错误?您是否在服务帐户所属的GCP项目中启用了Google Drive API?是的,正如我在运行代码而不放置json路径时提到的,代码会将我发送到一个浏览器窗口,在该窗口中我对我的帐户进行身份验证,之后所有命令都会顺利运行,我可以运行两个包中的任何命令。一旦我输入JSON,就不再工作了。
library(googledrive)
library(googlesheets4)
sheets_auth(scope = "https://www.googleapis.com/auth/drive",
            path  = 'myjson.json')

drive_auth(token = sheets_token())
dff <- drive_upload('dff.csv', type = "spreadsheet")
drive_browse(dff)