在闪亮的应用程序中使用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的查询。
要做到这一点:
- 为您的谷歌API项目创建一个服务帐户。
- 下载包含服务帐户私钥的JSON文件。
- 授予服务帐户访问您的Google BigQuery项目的权限,方式与您对其他任何用户的权限相同。这是通过Google API控制台IAM屏幕完成的,您可以在其中设置项目的权限。
- 供应私钥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")