2016-05-30 73 views
4

我想通過在R studio服務器上運行的腳本連接到谷歌分析API。R腳本從谷歌分析導入數據

我按照本教程的步驟:

http://www.r-bloggers.com/how-to-extract-google-analytics-data-in-r-using-rgoogleanalytics/

如果我在本地主機上運行它,它工作正常的,但是當我嘗試過R工作室在遠程服務器上運行腳本,

authroization步驟沒有完成,因爲它會嘗試連接到本地主機即URL

localhost:1410/ 

,而不是REMOTESERVERHOSTNAME:1410

我發現這個職位提示端口轉發,如果過R工作室運行:link

但如果明天,如果我想訪問其他主機上,我不想先設置端口轉發。

如何在不設置端口轉發的情況下運行此腳本?對於我的R腳本,oauth身份驗證有哪些其他方式?

回答

4

一個建議是使用Google Service Account。通過CRAN提供的Mark Edmondson包的googleAuthR包提供了使用Google服務帳戶在R中執行服務器端驗證的功能。同一作者的另一個名爲googleAnalyticsR的軟件包(也在CRAN上)與googleAuthR集成,並使用生成的身份驗證令牌對Google Analytics報告API執行查詢,其中包括最新版本4.0。

要做到這一點:

  1. 爲您的谷歌API項目創建一個服務帳戶。
  2. 下載包含服務帳戶私鑰的JSON文件。
  3. 授予Google Analytics的服務帳戶訪問權限,方式與您對其他任何用戶的權限相同。
  4. 供應私鑰JSON文件作爲與googleAuthR驗證時的參數的位置(見下面的例子。):

以下爲R腳本引用包含私鑰JSON文件,並執行基本Google Analytics報告查詢。請記住將json_file參數設置爲適當的文件路徑,並將id參數設置爲適當的Google Analytics數據視圖:

library(googleAuthR) 
library(googleAnalyticsR) 

gar_auth_service(
    json_file = "API Project-xxxxxxxxxxxx.json", 
    scope = "https://www.googleapis.com/auth/analytics" 
) 

google_analytics(id = "123456789", start = "2016-06-01", end = "2016-06-28")