首页 > 解决方案 > 如何在 google drive changes api 中不检测文件和文件夹的打开

问题描述

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

标签: google-drive-apigoogle-api-nodejs-client

解决方案


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

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

如果您仅尝试获取创建/删除时间,那么我建议您从更改通知中获取文件 ID,并请求获取文件元数据并查看文件是否是在过去 5 分钟(或更短时间)内创建的. createdTime例如,您可以通过仅获取字段来加快速度。

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

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

支持 Changes 观看频道的事件类型过滤

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


推荐阅读