node.js - BigQuery NodeJs 库 - 访问 Google Drive 中的外部源时出错
问题描述
我正在尝试使用 运行查询,BigQuery
但NodeJS SDK
我收到一条错误消息
“错误:未找到具有 Google Drive 范围的 OAuth 令牌”。
该表是一个外部表,其源格式如GOOGLE_SHEETS
.
我使用以下代码配置了大查询,添加了额外的范围。我的默认凭据可以访问驱动器。注意: bq 命令正在运行。
const { BigQuery } = require('@google-cloud/bigquery');
const bigquery = new BigQuery({
projectId: "my-dataset",
scopes: [
"https://www.googleapis.com/auth/drive.readonly"
],
});
我想念什么?有人能帮我吗?
解决方案
根据文档“访问托管在 Google Drive 中的数据需要额外的 OAuth 范围,无论是在定义联合源时还是在查询执行期间”。
使用 BigQuery API 时,说明除了 BigQuery 的范围外,还需要请求 Google Drive 的 OAuth 范围。在上述链接中,您还将找到以其他语言显式创建具有所需范围的凭据的示例。
为了让事情更容易,我建议您使用Google Auth Library,包括作为范围:
scopes: [
"https://www.googleapis.com/auth/drive.readonly",
"https://www.googleapis.com/auth/bigquery"
]
推荐阅读
- string - 使用 Sed 将文本文件中的子字符串替换为字符串的文本文件
- shopify - 如何在 ScriptTag 中生成资产 URL?
- javascript - Express 代理服务器,到 Proxy Fiddler
- lisp - Lisp:在哪里可以找到 sbcl 的保留字符列表?
- c++ - 对的排序向量 (std::vector
>) 按pair的第一个元素搜索并更新第二个元素值 - java - 如何设置列表的最大大小
- javascript - 需要使用 selenium python [webRTC] 从 RTCPeerConnection.getStats() 捕获数据
- python - 如何杀死超过 Linux 中 CPU 使用率和运行时限制的特定进程?
- android - 如何从原生Android端动画化FlutterActivity(flutter screen)的退出过渡?
- arrays - Java方法返回空白数组