【问题标题】:BigQuery: No OAuth token with Google Drive scope was foundBigQuery:未找到具有 Google Drive 范围的 OAuth 令牌
【发布时间】:2018-09-23 05:45:15
【问题描述】:

我正在尝试用 BigQuery 查询替换 Google 表格的内容。

我在 Google 表格中并使用基于以下内容的脚本:https://greenido.wordpress.com/2013/12/16/big-query-and-google-spreadsheet-intergration/ Accessing BigQuery with Google Spreadsheet

脚本所做的只是从 BigQuery 查询中提取信息并将其写入 Google 表格。但如果我只是运行脚本,我最终会收到一个错误:BigQuery: No OAuth token with Google Drive scope was found

我需要做什么才能让它工作?

【问题讨论】:

  • 在许多情况下,搜索已经提出的类似问题也很有帮助!我确实记得看过很多相关的(我认为)
  • 谢谢米哈伊尔。在发布之前,我确实发现了类似的问题,但没有一个(据我所知)涉及我的具体问题。

标签: google-apps-script google-bigquery


【解决方案1】:

经过大量谷歌搜索,我找到了答案。显然,即使我需要授予我的脚本管理不仅我的 Google 表格的权限,还要授予管理我的 Google Drive 的权限。

我所要做的就是添加一个函数,让 Google 请求我允许脚本来管理我的云端硬盘。

函数如下:

function usingAppsScriptsToken ()}
  // we need to provoke a drive dialog
  // DriveApp.getFiles()
}

请注意,关键成分是 DriveApp.getFiles(),即使它被注释它仍然有效。当我运行这个函数时,我会得到一个弹出窗口,上面写着“(你的脚本)想要查看和管理你的谷歌驱动器中的文件”。当我允许时,数据导入功能起作用。

Source

【讨论】:

  • 这是一个很棒的收获!范围应该基于您在高级服务中启用的内容,但事实并非如此。希望谷歌最终会解决这个问题。当您尝试通过 API / App 脚本在 Bigquery 中访问基于 Google 表格的表格时,也会发生同样的情况
【解决方案2】:

无需在您的代码中添加任何内容。

您只需向 appscript.json 文件的依赖项部分添加一个额外的范围:

"dependencies": {
  "enabledAdvancedServices": [{
    "userSymbol": "BigQuery",
    "serviceId": "bigquery",
    "version": "v2"
  },
  { 
    "userSymbol": "Drive",
    "serviceId": "drive",
    "version": "v2"
  }]
}

在查看菜单中,您可以选择显示清单文件:

【讨论】:

  • 这里没有显示任何修改的范围。已启用的高级服务仅在 Apps 脚本编辑器中提供自动完成功能。
【解决方案3】:

只需添加

DriveApp.getFiles()

到您项目中的任何函数并运行它。跑步后,您会看到一个询问驱动器权限的窗口。

毕竟你可以删除这一行,一切都会好的。

【讨论】:

    猜你喜欢
    • 2018-02-22
    • 1970-01-01
    • 2015-03-13
    • 2014-11-22
    • 2012-06-05
    • 2015-06-19
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    相关资源
    最近更新 更多