【发布时间】:2018-03-25 16:30:59
【问题描述】:
我正在尝试修复一些使用 BigQuery“高级服务”来安装一些 BigQuery 作业的应用脚本。我运行的第一个新脚本弹出了 BigQuery 授权对话框,一切正常,现在每小时运行一次。第二个新脚本最初运行,但现在失败:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
}
这在初始授权后大约 12 小时开始,因此似乎有些内容已过期。但是,我不知道如何触发授权对话框的出现。此外,我预计每个不同的功能都需要授权,但第二个功能最初运行时并未请求 BigQuery 权限。
附加信息: 这是我正在执行的 .gs 文件:
function runQuery() {
var projectId = redacted;
var configuration = {
"query": {
"useQueryCache": false,
"destinationTable": {
"projectId": projectId,
"datasetId": redacted,
"tableId": redacted
},
"writeDisposition": "WRITE_TRUNCATE",
"createDisposition": "CREATE_IF_NEEDED",
"allowLargeResults": true,
"query": redacted
}
};
var job = {
"configuration": configuration
};
var jobResult = BigQuery.Jobs.insert(job, projectId);
var jobId = jobResult.jobReference.jobId;
Logger.log(jobResult);
}
我第一次运行非常相似的查询时,出现一个对话框,提示我提供 BigQuery 权限,如下所述: https://developers.google.com/apps-script/guides/services/authorization 我随后成功地运行了这个相同的脚本(查询配置略有不同)。但是,在第一次运行大约 12 小时后,我开始收到上面引用的授权返回。我认为它可能会随着时间的推移而刷新,但仍然会失败。
【问题讨论】:
-
你有刷新令牌吗?
-
@noogui,我不知道。我的理解是 App Scripts - BigQuery Advanced Service 集成为您处理授权,正如我最初所经历的那样,当它提示我获得许可时。
-
请包含您授权脚本的代码 - 登录等。如果您只说“脚本”,人们将无法帮助您,因为我们不知道您是如何实现它的。跨度>
-
@noogui 我编辑了原件以包含更多细节。谢谢。
-
您能提供您正在运行的查询吗?我建议你使用library,这样你就可以在你的脚本中管理你的访问了。
标签: google-apps-script google-bigquery authorization