首页 > 解决方案 > 在 Google 表格保存操作上触发 PubSub 消息

问题描述

一旦有人将更改提交到 Google Sheet 的版本控制(而不只是编辑像 onEdit 事件似乎触发的任何单元格,我需要它提交),我正在尝试自动执行 Google Sheet 导入。

虽然投票是一种选择,但我宁愿让 Google 表格向 PubSub 发送消息。现在 PubSub 需要身份验证 JSON 等,我还没有看到任何与 Google Sheets 集成的集成这个概念,这让我感到惊讶。

我在互联网上搜索了 Google Sheet 中的触发器以及一些自动化代码以连接到外部资源的方法。显然,Google Drive Push Notification API 似乎是要走的路。我真的很想把所有东西都保存在我的谷歌云空间里,所以我选择了一个带有 HTTP(S) 端点的谷歌云函数。当我回到文档阅读如何向 HTTP 端点发送调用时,我已经开始研究 Function 和 PubSub 通道。

厄运。似乎您需要注册该域以证明您拥有它并希望我可以,但我无法证明我拥有 cloudfunctions.net。于是我的计划就完成了。

谷歌似乎不喜欢将其 Cloud SDK 集成到 Google Sheets 触发器上,因为它们确实提供了使用 Cloud Service Accounts 的 Sheets API。

所以我的结论是我有两个选择:

1) 我能够在 onEdit() 函数上发送 HTTP 回调,但前提是它是我自己的域并且我似乎需要为此设置一个环境。

2)与最新版本相比,我必须轮询 Google 表格提交的最新版本才能自己触发它。

我是否忽略了一些非常简单的事情,或者这些是我唯一的选择?

标签: eventsgoogle-apps-scripttriggersgoogle-cloud-functionsgoogle-cloud-pubsub

解决方案


云函数算作此处此处所述的 AppEngine 标准端点,因此不需要域验证。您可以使用 Cloud Pub/Sub 触发器自由使用云功能 - 您甚至不需要显式设置订阅。

编辑:我没有正确理解 OP 的问题,他们想向 Google Drive Push Notification API 证明他们对云功能的所有权,而不是 Cloud Pub/Sub 推送。这应该可以通过此处描述的 HTML 标记验证来实现。在您为 Web 服务器使用的任何框架中,您都应该能够在响应上设置适当的 HTML 元标记。


推荐阅读