2014-10-08 78 views
4

我想創建一個閃亮的應用程序,它利用bigrquery連接到BigQuery API並運行查詢。 我使用下面的代碼來執行查詢:在閃亮的應用程序中使用bigrquery auth

library(bigrquery) 
    project <- "PROJECT_ID" # put your project ID here 
    sql <- 'QUERY ' 
    test <- query_exec(sql, project = project) 

不過在此之前沒有在bigrquery包的認證過程,如:

google <- oauth_endpoint(NULL, "auth", "token", 
     base_url = "https://accounts.google.com/o/oauth2") 

    bigqr <- oauth_app("google", 
     "465736758727.apps.googleusercontent.com", 
     "fJbIIyoIag0oA6p114lwsV2r") 

    cred <- oauth2.0_token(google, bigqr, 
      scope = c(
       "https://www.googleapis.com/auth/bigquery", 
       "https://www.googleapis.com/auth/cloud-platform")) 

我怎麼能在我的應用程序的身份驗證過程集成了

  • 過程不需要交互或
  • 過程中可與給定的應用程序鍵和祕密s(我在哪裏得到它們? )或
  • auth進程在另一個瀏覽器窗口中打開。

問候

回答

3

一個建議我有,這是類似我提供了一個問題的答案約server-side access to Google Analytics data,是使用Google Service Account。可通過CRAN獲得的包Mark Edmondson提供使用Google服務帳戶在R中執行服務器端身份驗證的功能。同一作者的另一個名爲bigQueryR的軟件包(也在CRAN上)與googleAuthR集成,並使用生成的身份驗證令牌執行對Google BigQuery的查詢。

要做到這一點:

  1. 爲您的谷歌API項目創建一個服務帳戶。
  2. 下載包含服務帳戶私鑰的JSON文件。
  3. 授予服務帳戶訪問您的Google BigQuery項目的權限,方式與您對其他任何用戶的權限相同。這是通過Google API控制檯IAM屏幕完成的,您可以在其中設置項目的權限。
  4. 供應私鑰JSON文件作爲與googleAuthR驗證時的參數的位置(見下面的例子。):

以下爲R腳本,根據關斷從bigrquery包的示例,引用包含私鑰的JSON文件並執行基本的Google BigQuery查詢。請記住將json_file參數設置爲您的Google BigQuery項目的相應文件路徑和project參數:

library(googleAuthR) 
library(bigQueryR) 

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

project <- "project_id" # put your project ID here 
sql <- "SELECT year, month, day, weight_pounds 
     FROM [publicdata:samples.natality] LIMIT 5" 

bqr_query(projectId = project, query = sql, datasetId = "samples") 
相關問題