BigQuery AppsScript 客户端的默认范围不包括 Google Drive
Posted
技术标签:
【中文标题】BigQuery AppsScript 客户端的默认范围不包括 Google Drive【英文标题】:Default scopes for the BigQuery AppsScript Client don't include Google Drive 【发布时间】:2018-08-15 04:09:35 【问题描述】:我一直在尝试通过 Apps 脚本中的 API 将云端硬盘文件(工作表)设置为 BigQuery 中的联合数据源。出于某种原因,从 UI 启用 Drive API 并没有真正起作用。我仍然会发现 Drive 范围丢失了。
任何想法都会非常有帮助。
【问题讨论】:
【参考方案1】:好的,我刚刚解决了这个问题,如果您遇到这个问题,这里是如何解决的。在 UI 中启用 Drive API 是不够的。
如果应用没有在其他地方显式调用任何与云端硬盘相关的 API 调用,则云端硬盘范围不会被添加到脚本的清单中。
在我的情况下,这通过在 manifest.json 文件中显式启用驱动器范围来工作(请在 UI 中选择“显示清单文件”)。驱动器的作用域是https://www.googleapis.com/auth/drive 被添加到oauthScopes 列表中,例如:
"timeZone": "Asia/Dubai",
"oauthScopes": [
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/spreadsheets"
],
"dependencies":
"enabledAdvancedServices": [
"userSymbol": "Drive",
"serviceId": "drive",
"version": "v3"
,
"userSymbol": "BigQuery",
"serviceId": "bigquery",
"version": "v2"
]
,
"webapp":
"access": "MYSELF",
"executeAs": "USER_DEPLOYING"
,
"exceptionLogging": "STACKDRIVER"
【讨论】:
以上是关于BigQuery AppsScript 客户端的默认范围不包括 Google Drive的主要内容,如果未能解决你的问题,请参考以下文章
通过 Dataflow Java API 返回客户端的不一致 BigQuery 数据类型
使用 Python 客户端的 Google BigQuery API
来自 Apps 脚本的 DELETE 的 BigQuery 错误? [复制]
在 Apps 脚本中的自定义函数中,BigQuery 调用失败