使用来自bigquery的数据自动更新Google电子表格

时间:2016-06-07 23:21:35

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

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

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

2 个答案:

答案 0 :(得分: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,然后点击屏幕右上角的帐户图片。接下来,点击帐户,然后点击安全,然后在帐户权限部分查看全部。)

  • 单击要撤消其授权的脚本的名称,然后单击右侧的撤消访问权限。

有关授权的详细信息,请参阅Google官方文档:https://developers.google.com/apps-script/add-ons/lifecycle

答案 1 :(得分:0)

由于BigQuery已经集成到Google Spreadsheet, 这就是你用脚本做的事情:

1。使用添加了路径参数datasetIdprojectId的{​​{3}}发送HTTP请求。

示例HTTP请求:

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

但是,使用Datasets: update时请注意以下事项:

  • 需要Datasets: update
  • 中所述的授权
  • 指定的访问列表会完全覆盖现有的访问列表。如果您指定一个空访问列表,则将撤消对除您自己以外的所有人的访问权限
  • 此请求需要至少具有以下范围之一的授权:

<强>范围

https://www.googleapis.com/auth/bigquery

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

2. 要自动更新数据,您可以在脚本中设置一个Authenticating requests to the Google BigQuery API函数,该函数根据您的偏好执行,并保留这些保留的函数名称:

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

同样,您还应该注意,因为简单的触发器会自动触发,所以它们会受到一些限制,您可以在文档中查看这些限制。