【问题标题】:Not getting Authorization dialog for App Script accessing BigQuery Service未获得访问 BigQuery 服务的应用脚本的授权对话框
【发布时间】: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


【解决方案1】:

事实证明这一直有效。授权错误是由我尝试查看作业结果产生的,而不是由作业本身产生的。呵呵!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多