正在使用来自 bigquery 的数据自动更新 google 个电子表格

Automatically updating google spreadsheet with data from bigquery

遵循说明 here 并将 google spreadsheet 与 bigQuery 集成。我的查询提取过去一小时的数据,因此保持传播sheet 更新很重要。

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

由于 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) 在用户访问网络应用程序或程序向网络应用程序发送 HTTP GET 请求时运行。
  • doPost(e) 在程序向 Web 应用程序发送 HTTP POST 请求时运行。

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

@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