google-drive-api - 如何在 google drive changes api 中不检测文件和文件夹的打开
问题描述
我正在使用 google drive api 构建一个 expressjs 应用程序,只要通过 webhook 在他们的 google drive 中发生文件更改,它就会通知用户。但是,当我打开/查看文件夹或文件时,我也会收到 webhook,这是完全没有必要的。是否可以仅在驱动器中创建或删除新文件时才接收 webhook?如果是这样,我该怎么做?
解决方案
不幸的是,没有直接的方法。
一旦您的应用收到更改通知,您可能需要再次提出请求。您可能需要保留一些数据以进行比较,具体取决于您需要做什么。如您所见,监视端点将通知您几乎所有更改,包括视图。所以你需要找到一种方法来过滤掉这些。
如果您仅尝试获取创建/删除时间,那么我建议您从更改通知中获取文件 ID,并请求获取文件元数据并查看文件是否是在过去 5 分钟(或更短时间)内创建的. createdTime
例如,您可以通过仅获取字段来加快速度。
对于已删除,您可以直接从更改通知中获取更改类型,但这只会在您已永久删除(即不在垃圾箱中)时通知您。垃圾事件看起来和其他事件一样。如果您需要垃圾通知,它将更加复杂。有一个trashed
属性,但没有时间戳。如果您需要这个,那么您可能必须保留哪些文件被丢弃的快照,然后每次收到请求时,检查更改的文件现在是否被丢弃。
对此有一个有效的功能请求
支持 Changes 观看频道的事件类型过滤
去给它一个 ☆ 让谷歌知道你想要这个功能!
推荐阅读
- java - 如何在java中修复while循环的条件
- angular - 防止 Angular 中出现多个应用程序选项卡
- ios - 参数类型不符合预期类型
- excel - 有没有办法通过 Scala/Spark 应用程序中的 Apache POI 设置 Excel 文件的样式?
- angular - 如何在 Stackblitz (Angular) 中清除计时器/间隔
- php - WooCommerce 修改地址信息的换行
- webpack - Nativescript 6 angular如何将SCSS文件动态加载到页面中
- javascript - react native - 如何将 TextInput 字段中的值放入 Text 字段
- java - 将数据集写入不同的 XML 文件
- c# - 持久层和业务逻辑调用c#的多态性问题