从服务器

时间:2015-10-16 10:34:52

标签: r google-bigquery

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

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

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

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

1 个答案:

答案 0 :(得分:11)

默认情况下,bigrquery用于oauth的httr将{。{3}}用于.httr-oauth。您可以使用以下内容覆盖此位置(如果您愿意,可以将其放在.Rprofile中):

options("httr_oauth_cache"="~/.httr-oauth")

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

  1. 确保.httr-oauth文件不存在
  2. 重启R
  3. 使用bigrquery执行一个查询
  4. 请注意,如果httr尝试重定向到localhost,您可以强制它执行带外oauth流程:

    options(httr_oob_default = TRUE)