【问题标题】:Automatically updating google spreadsheet with data from bigquery使用来自 bigquery 的数据自动更新 google 电子表格
【发布时间】:2016-06-07 23:21:34
【问题描述】:

按照说明 here 并将 Google 电子表格与 bigQuery 集成。我的查询提取过去一小时的数据,因此保持电子表格更新很重要。

有没有办法让工作表自动运行脚本并在刷新页面时更新数据?现在,我需要点击几下才能完成。

【问题讨论】:

  • 刷新页面会触发“onOpen()”简单触发器,或已安装的“on open”触发器。因此,您需要一个“On Open”触发器,无论是简单的还是已安装的。 Apps Script Documentation - Triggers
  • 谢谢。我试过了,但是如果我刷新页面,就会出现身份验证错误。但如果我按照手动步骤操作,数据就会刷新。

标签: google-apps-script google-sheets google-bigquery google-spreadsheet-api


【解决方案1】:

除了@Sandy Good 的回答。

您需要使用onOpen(e),它在用户打开具有编辑权限的电子表格、文档或表单时运行。

function onOpen() {
// Add a custom menu to the spreadsheet.
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.createMenu('Custom Menu')
.addItem('First item', 'menuItem1')
.addToUi();
}

您收到授权错误,因为脚本需要授权。 Apps 脚本需要用户授权才能访问数据。

如果脚本使用可以访问私有数据的服务,您将看到授权对话框之一。

您可以按照以下步骤撤销脚本访问权限:

  • 访问您的 Google 帐户的权限页面。 (以后要导航到此页面,请访问 Google.com,然后单击屏幕右上角的帐户图片。接下来,单击帐户,然后单击安全,然后在帐户权限部分中查看全部。)

  • 点击要撤销授权的脚本名称,然后点击右侧的Revoke access。

有关授权的更多信息,请关注 Google 官方文档:https://developers.google.com/apps-script/add-ons/lifecycle

【讨论】:

    【解决方案2】:

    由于 BigQuery 已集成到 Google 电子表格中, 以下是您必须对脚本执行的操作:

    1. 使用Datasets: update 发送HTTP 请求并添加路径参数datasetIdprojectId

    HTTP 请求示例:

    PUT https://www.googleapis.com/bigquery/v2/projects/projectId/datasets/datasetId
    

    但是,使用Datasets: update时请注意以下几点:

    • 它需要如Authenticating requests to the Google BigQuery API 中所述的授权
    • 指定的访问列表完全覆盖现有的访问列表。如果您指定一个空的访问权限列表,您将撤消除您自己以外的所有人的访问权限
    • 此请求需要至少具有以下范围之一的授权:

    范围

    https://www.googleapis.com/auth/bigquery
    
    https://www.googleapis.com/auth/cloud-platform
    

    2.要自动更新您的数据,您可以在脚本内部设置一个Trigger 函数,该函数根据您的偏好使用这些保留的函数名称执行:

    • onOpen(e) 在用户打开他或她有权编辑的电子表格、文档或表单时运行。
    • onEdit(e) 在用户更改电子表格中的值时运行。
    • onInstall(e) 在用户安装插件时运行。
    • doGet(e) 在用户访问 Web 应用或程序向 Web 应用发送 HTTP GET 请求时运行。
    • 当程序向 Web 应用发送 HTTP POST 请求时,doPost(e) 运行。

    同样,您还应该注意,由于简单的触发器会自动触发,因此它们会受到一些限制,您可以在文档中了解这些限制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多