正在使用来自 bigquery 的数据自动更新 google 个电子表格
Automatically updating google spreadsheet with data from bigquery
遵循说明 here 并将 google spreadsheet 与 bigQuery 集成。我的查询提取过去一小时的数据,因此保持传播sheet 更新很重要。
有没有办法让 sheet 自动 运行 脚本并在刷新页面时更新数据?现在,我需要点击几下才能完成。
由于 BigQuery 已经集成到 Google 电子表格中,
这是您必须对脚本执行的操作:
1. 使用 Datasets: update
发送 HTTP 请求并添加路径参数 datasetId
和 projectId
.
示例 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
遵循说明 here 并将 google spreadsheet 与 bigQuery 集成。我的查询提取过去一小时的数据,因此保持传播sheet 更新很重要。
有没有办法让 sheet 自动 运行 脚本并在刷新页面时更新数据?现在,我需要点击几下才能完成。
由于 BigQuery 已经集成到 Google 电子表格中, 这是您必须对脚本执行的操作:
1. 使用 Datasets: update
发送 HTTP 请求并添加路径参数 datasetId
和 projectId
.
示例 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)
在用户访问网络应用程序或程序向网络应用程序发送 HTTPGET
请求时运行。doPost(e)
在程序向 Web 应用程序发送 HTTPPOST
请求时运行。
同样,您还应该注意,因为简单触发器会自动触发,所以它们受到一些限制,您可以在文档中查看这些限制。
@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