在闪亮的应用程序中使用bigrquery auth

问题描述:

我想创建一个闪亮的应用程序,它利用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进程在另一个浏览器窗口中打开。

问候

一个建议我有,这是类似我提供了一个问题的答案约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")