我想创建一个闪亮的应用程序,它利用 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"))
如何将身份验证过程集成到我的应用程序中
- 该过程不需要交互或
- 该过程适用于给定的应用程序密钥和秘密(我在哪里获取它们?)或
- 身份验证过程将在另一个浏览器窗口中打开。
Regards
我有一个建议,类似于我在一个问题上提供的答案服务器端访问 Google Analytics 数据,就是使用一个谷歌服务帐户. The googleAuthR封装者马克·埃德蒙森通过 CRAN 提供,提供使用 Google 服务帐户在 R 中执行服务器端身份验证的功能。同一作者的另一个包名为bigQueryR,也在 CRAN 上,集成了googleAuthR
并使用生成的身份验证令牌执行对 Google BigQuery 的查询。
为了达成这个:
- 为您的 Google API 项目创建一个服务帐户。
- 下载包含服务帐户私钥的 JSON 文件。
- 授予服务帐户对您的 Google BigQuery 项目的访问权限,就像授予任何其他用户一样。这是通过 Google API 控制台 IAM 屏幕完成的,您可以在其中为项目设置权限。
- 进行身份验证时,提供私钥 JSON 文件的位置作为参数
googleAuthR
(参见下面的示例。):
以下示例 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")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)