使用带有 Google 表格的 BigQuery API 时出现“通配文件模式时遇到错误”错误

Gra*_*ley 9 google-drive-api google-bigquery google-sheets-api

尝试从 BigQuery API 访问联合源(Google 表格)时,会引发以下错误:

[..]
 "errorResult" : {
      "location" : "/gdrive/id/<removed_file_id>",
      "message" : "Encountered an error while globbing file pattern.",
      "reason" : "invalid"
    }
[..]
Run Code Online (Sandbox Code Playgroud)

BigQuery 中的表设置为指向此文件。它通过 Web UI 工作。只有在尝试通过 API 查询表时,它才会因上述错误而窒息。

我猜这与权限有关。需要做什么才能允许从作为联合源(指向 Google 表格)的 API 访问 BigQuery 表?

Gra*_*ley 12

允许 API 查询 BigQuery 中的联合表时需要遵循 3 个步骤 - BigQuery 指向 Drive 中的文件,即 Google Sheets。

此处记录了其中两个步骤(我错过了第二个步骤 - 添加 Drive 范围)。最后一个是将用于访问 API 的关联服务帐户电子邮件添加到文件本身。

  1. 使用 Google Cloud Platform Console 为进行 API 调用的项目启用 Google Drive API
  2. 除了 BigQuery 的范围之外,还请求Google DriveOAuth 范围
  3. 将您使用的服务帐户电子邮件添加到云端硬盘中的文件。它看起来像<project-id>-<fingerprint-hash>@developer.gserviceaccount.com. “查看”权限就足够了。