从 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 脚本中检索有效的访问令牌