首页 > 解决方案 > BigQuery NodeJs 库 - 访问 Google Drive 中的外部源时出错

问题描述

我正在尝试使用 运行查询,BigQueryNodeJS 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"
    ],
});

我想念什么?有人能帮我吗?

标签: node.jsgoogle-cloud-platformgoogle-bigquerynode-modules

解决方案


根据文档“访问托管在 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"
    ]

推荐阅读