从服务器上的R会话访问BigQuery的授权

mal*_*lte 6 r google-bigquery

我正在使用R和package bigrquery从R会话访问Bigquery.只要我在我的本地机器上,这就很有效.但是,当我尝试从远程服务器上的R访问Bigquery时,它根本不起作用.

我试图将.httr-oauth文件复制到服务器上的主目录中,但这不起作用.我收到错误消息:

自动刷新陈旧的OAuth令牌.refresh_oauth2.0中出错(self $ endpoint,self $ app,self $ credentials):客户端错误:(400)错误请求

我真的不知道在哪里存储必要的凭据,不幸的是我无法通过谷歌搜索主题找到任何有用的东西.

小智 13

默认情况下,bigrquery用于oauth的httr将在R会话的当前工作目录中查找.httr-oauth.您可以使用以下内容覆盖此位置(如果您愿意,可以将其放在.Rprofile中):

options("httr_oauth_cache"="~/.httr-oauth")
Run Code Online (Sandbox Code Playgroud)

但是对于您收到的错误消息,似乎位置不是问题,并且可能更容易重做远程服务器上的oauth流以缓存新凭据.要在远程服务器上触发新的oauth流:

  1. 确保.httr-oauth文件不存在
  2. 重启R.
  3. 用bigrquery执行一个查询

请注意,如果httr尝试重定向到localhost,您可以强制它执行带外oauth流:

options(httr_oob_default = TRUE)
Run Code Online (Sandbox Code Playgroud)