如何在 google 驱动器更改 api 中不检测文件和文件夹的打开

How to not detect opening of files and folders in google drive changes api

我正在使用 google 驱动器 api 构建一个 expressjs 应用程序,只要用户的 google 驱动器中有文件更改,它就会通过 webhook 通知用户。但是,当我 open/view 一个文件夹或文件时,我也会收到 webhooks,这是完全没有必要的。是否可以在驱动器中创建或删除新文件时仅接收 webhook?如果是这样,我该怎么做?

不幸的是,没有直接的方法。

一旦您的应用收到更改通知,您可能必须再次提出请求。您可能必须保留一些数据以进行比较,具体取决于您需要做什么。如您所见,watch 端点将通知您几乎所有更改,包括视图。所以你需要找到一种方法来过滤掉这些。

如果您只想获得 create/deleted 次,那么我建议您从更改通知中获取文件 ID 并发出请求以获取文件元数据,并查看该文件是否是在最近 5 天内创建的例如分钟(或更少)。例如,您可以通过仅获取 createdTime 字段来加快速度。

对于已删除,您可以直接从更改通知中获取更改类型,但这只会在您已将其删除永久,即不在垃圾箱中时通知您。垃圾事件看起来与其他事件一样。如果你需要垃圾通知,它会更复杂。有一个 trashed 属性,但没有时间戳。如果您需要这个,那么您可能必须保留哪些文件被丢弃的快照,然后每次收到请求时,检查更改的文件现在是否已被丢弃。

对此有一个有效的功能请求

Support event type filtering for Changes watch channel

去给它一个 ☆ 让 Google 知道你想要这个功能!