我正在尝试使用googleCloudStorageR和googleAuthR对R中的gcs进行身份验证。
我在gcp上启用了所有必需的API。
当我运行query_exec(sql,project,use_legacy_sql = FALSE),浏览器打开,令牌被缓存并且一切正常时,我能够通过bigrquery进行身份验证。
但是当我尝试对googlecloudstorageR gcs_auth()或gar_auth()与googleAuthR进行相同操作时。我不断收到以下错误。
错误:未设置选项('googleAuthR.client_id')
我现在没有从API页面创建凭据的权限。但是我不明白为什么我可以通过不必通过gcs_auth或gar_auth来执行bigrquery而不通过googlecloudstorage进行身份验证的身份验证。
我还可以通过更改范围来使用bigrquery .httr / oauth文件中的相同客户端ID和密码来验证googlecloudstorage吗?
编辑: 我在工作中使用它,因此我没有权限从https://console.cloud.google.com/apis/credentials页创建凭据。
代码:
library(bigrquery)
project <- "mtproject"
sql <- "SELECT * FROM `myproject.Superstore.orders`"
data <- query_exec(sql,myproject,use_legacy_sql = FALSE)
运行上面的代码时,浏览器打开,并给我一个令牌,然后将其复制并粘贴到R中。
但是当我尝试使用googleAuthR的以下代码进行身份验证时,什么也没有发生,并且出现错误。
library(googleAuthR)
2019-05-21 14:10:34> No environment argument found, looked in GAR_AUTH_FILE
Warning message:
package ‘googleAuthR’ was built under R version 3.5.3
> gar_auth(new_user=TRUE)
Error: option('googleAuthR.client_id') has not been set
我没有为bigquery auth设置任何客户端ID,但是可以,为什么gar_auth不起作用?
答案 0 :(得分:0)
通过加载另一个库或在脚本中设置它们来更改选项“ googleAuthR.client_id”和“ googleAuthR.client_secret”,然后使用具有不同选项集的缓存文件。
如果您始终要使用相同的凭据,请通过创建缓存令牌,将其移至专用的auth文件夹并使用环境变量GAR_AUTH或程序包支持的令牌来使用自动身份验证选项。
您可以通过以下链接获取更多信息:https://code.markedmondson.me/googleAuthR/articles/troubleshooting.html