从 Google Apps 脚本访问 GoogleSheet 链接的 BigQuery 表时出现“获取驱动器凭据时权限被拒绝”错误

Posted

技术标签:

【中文标题】从 Google Apps 脚本访问 GoogleSheet 链接的 BigQuery 表时出现“获取驱动器凭据时权限被拒绝”错误【英文标题】:"Permission denied while getting Drive credentials" error occurs when accessing GoogleSheet linked BigQuery table from Google Apps Script 【发布时间】:2021-10-15 10:23:16 【问题描述】:

以下是我最初的问题,但我尝试了几个查询,终于接近解决问题。

按照教程,我已经设法从 Google Apps 脚本访问 BigQuery,但是当查询包含 GoogleSheet 链接表时,它会给出“获取驱动器凭据时权限被拒绝”错误。

由于 BigQuery 提供了创建与 GoogleSheet 链接的表的选项,因此我在此设置中有多个表。

没有链接表的查询有效,因此代码的基本设置很好,我相信凭据设置在 BigQuery 中。 我确实可以访问 BigQuery 中链接的 GoogleSheet。

如果有人知道如何解决这个问题,我将不胜感激。


我正在尝试从 Google Apps 脚本访问 BigQuery,并通过下面链接中的教程进行操作。 https://developers.google.com/apps-script/advanced/bigquery#run_query

我已设法在教程中运行脚本,因此继续访问我自己的数据集,其中出现如下错误

GoogleJsonResponseException: API call to bigquery.jobs.query failed with error: Access Denied: BigQuery BigQuery: Permission denied while getting Drive credentials.

对于 python,有一些示例可以添加本地文件,例如 service_account.json,其中包含所有凭据数据。 GAS 有appsscript.json,但这似乎是不同的格式。

还有其他地方可以设置凭据吗?

BigQuery 和 Google Apps Script 归同一个 google 用户所有,因此允许从 chrome 浏览器访问。

【问题讨论】:

代码中的项目ID更新了吗? @Karan 是的。我已经修改了这个问题。错误出现在google sheet 链接表附近,但不知道下一步在哪里。 【参考方案1】:

我的 Google Apps 脚本遇到了同样的问题。修复步骤:

    “服务”下启用 Google Drive API

    在项目/函数的开头添加 DriveApp.getRootFolder(); 以获取 Drive Auth Scope。

应该可以!

【讨论】:

以上是关于从 Google Apps 脚本访问 GoogleSheet 链接的 BigQuery 表时出现“获取驱动器凭据时权限被拒绝”错误的主要内容,如果未能解决你的问题,请参考以下文章

从 Google Apps 脚本访问 GoogleSheet 链接的 BigQuery 表时出现“获取驱动器凭据时权限被拒绝”错误

无法使用访问令牌访问部署为网络应用程序的 Google Apps 脚本

例外:未配置访问 - API 更新后使用 Google Apps 脚本的 BigQuery

Spotify API - 在 Google Apps 脚本中检索有效的访问令牌

如何从 Google 电子表格中的 Google Apps 脚本自动更新“站点地图”功能?

Google Clas-s-room Apps 脚本 - CourseWork.list 权限错误