2015-10-16 110 views
5

我正在使用R和包bigrquery从R会话访问Bigquery。 只要我在本地计算机上,此功能就很有用。 但是,当我尝试从远程服务器上的R访问BigQuery时,它根本不起作用。从服务器上的R会话访问BigQuery的授权

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

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

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

回答

8

默认情况下,httr由bigrquery用于oauth,对于.httr-oauth将使用look in the R session's current working directory。 (如果你喜欢也许把它放在你的.Rprofile)您可以覆盖与以下这个位置:

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

但您收到错误信息,它似乎是一个位置不是问题,它可能更容易只需重新启动远程服务器上的oauth流来缓存新的凭证。要触发远程服务器上的一个新的OAuth流程:

  1. 确保.httr-OAuth的文件不存在
  2. 重启[R
  3. 与bigrquery

注意执行一个查询,如果HTTR尝试重定向到本地主机,您可以强制它执行以下带外oauth流程:

options(httr_oob_default = TRUE)