在Google表格上触发PubSub消息以保存操作

时间:2019-02-15 16:05:34

标签: events google-apps-script triggers google-cloud-functions google-cloud-pubsub

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

虽然可以选择轮询,但我确实希望Google表格将消息发送到PubSub。现在PubSub需要身份验证JSON之类的东西,而且我还没有看到与Google Sheets进行任何集成来集成该概念,这让我感到惊讶。

我在互联网上搜索了Google表格中的触发器以及某种方式来自动执行代码以连接到外部资源。显然,Google Drive Push Notification API似乎是必经之路。我真的很想将所有内容都保留在Google Cloud空间中,因此我选择了具有HTTP(S)端点的Google Cloud Function。当我回到文档中阅读有关如何向HTTP端点发送调用的信息时,我已经开始研究Function和PubSub通道。

运气不好。似乎您需要注册该域以证明您拥有它,并希望可以,但我不能证明我拥有cloudfunctions.net。所以我的计划去了。

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

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

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

2)我必须轮询Google表格提交的最新版本与最新版本进行比较,以自己触发。

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

1 个答案:

答案 0 :(得分:1)

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

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