我想创建一个闪亮的应用程序,它利用bigrquery连接到BigQuery API并运行查询。 我使用以下代码来执行查询:
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"))
如何在我的应用程序中集成auth进程
此致
答案 0 :(得分:3)
我有一个建议,就是我在server-side access to Google Analytics data的问题上提供的答案,就是使用Google Service Account。通过CRAN提供的googleAuthR
Mark Edmondson包提供了使用Google服务帐户在R中执行服务器端身份验证的功能。同一作者的另一个名为bigQueryR
的软件包(也在CRAN上)与googleAuthR
集成,并使用生成的身份验证令牌对Google BigQuery执行查询。
实现这一目标:
googleAuthR
进行身份验证时,提供私钥JSON文件的位置作为参数(请参阅下面的示例。):以下示例R脚本基于bigrquery
包中的示例,引用包含私钥的JSON文件并执行基本的Google BigQuery查询。请记住将json_file
参数设置为适当的文件路径,并将project
参数设置为Google BigQuery项目:
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")