2016-02-05 217 views
2

我目前正在开发Google Drive和外部存储之间的系统同步文件。我正在尝试处理推送通知。我已经能够注册并接收它们。接收每个通知后,我获得使用正确的终点,并尝试在必要时获得文件的新版本的更改列表,所以流动是这样的:驱动器推送消息 - 通过垃圾邮件发送垃圾邮件

  1. 订阅使用changes.watch
  2. 通知接收一些推送消息与URL的变化
  3. 使用API​​与提供的查询到端点得到改变特定的时刻后,改变了
  4. 筛选项目
  5. 获取文件的内容,并将其转移到其他服务

看起来,在最初的通知消息后,谷歌开始发送一个新的垃圾邮件,总是得到文件后。我怀疑获取文件内容的行为正在改变文件中的某个时间戳,因此 - 其内容已更改。

获取内容时,是否有可能不以任何方式修改文件?

编辑:

看来,这种行为的担忧files.export端点以及 - 导出谷歌文档为PDF导致垃圾邮件的通知也。在代码中注释输出部分会阻止它们进入。

回答

0

由于Changes: watch收听的是用户所做的更改,而不是文件本身,因此您会收到垃圾邮件。

你需要在这种情况下使用的是Files: watch。它订阅你听文件本身的变化。

+0

我100%确定这些更新的原因是获取文件。我检查了通知消息 - 每个都描述了完全相同的更改,并且如果我仅注释文件正在获取部分 - 每次文件更改后我都会得到一个通知,如预期的那样。 观察变化是可行的解决方案,但获取文件是一个有问题的部分。 – SzybkiSasza