2015-10-16 41 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)