无法验证googleCloudStorageR / googleAuthR

时间:2019-05-21 19:20:20

标签: r authentication google-cloud-platform google-cloud-storage

我正在尝试使用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不起作用?

1 个答案:

答案 0 :(得分:0)

通过加载另一个库或在脚本中设置它们来更改选项“ googleAuthR.client_id”和“ googleAuthR.client_secret”,然后使用具有不同选项集的缓存文件。

如果您始终要使用相同的凭据,请通过创建缓存令牌,将其移至专用的auth文件夹并使用环境变量GAR_AUTH或程序包支持的令牌来使用自动身份验证选项。

您可以通过以下链接获取更多信息:https://code.markedmondson.me/googleAuthR/articles/troubleshooting.html