我正在尝试构建一个需要访问我的bigquery表的闪亮应用程序,它通过交互式身份验证在本地运行良好。
Whey我部署了应用程序,它无法正常发出错误:
错误:oauth_listener()需要一个交互式环境。
这里有一个建议 - Authorization for accessing BigQuery from R session on server,但我不知道如何将.httr-oauth
文件传递给shinyapps.io
答案 0 :(得分:1)
解决方法是您需要在Google Cloud IAM中生成访问令牌json文件,并对BigQuery资源进行相关访问。
此文件应放在您的appDir
文件夹中,并在代码中引用,例如:
带有bigrquery
包
library(bigrquery)
set_service_token('access_token.json')
tb <- bq_dataset_query(
x = ds,
query = sql,
billing = '{your billing project}',
use_legacy_sql = use.legacy.sql,
parameters = params
)
dt <- bq_table_download(tb)
或使用retl
软件包:
# set env var `BIGQUERY_ACCESS_TOKEN_PATH` to path of your token file.
devtools::install_github(madedotcom/retl)
library(retl)
library(data.table)
dt <- bqExecuteQuery(sql)