Google Drive SDK:会收到有关任何文件更改的通知

时间:2016-09-16 17:53:50

标签: google-drive-api google-drive-realtime-api

我开发了一个Python应用程序来访问GDrive,现在我希望在gdrive上更改任何文件时收到通知。 具体来说,我对移动/重命名,删除,下载和上传事件感兴趣。我看到Google提供了2个工具:

  1. push notifications,但看起来这仅限于通知特定文件或目录的更改,如here所示。

  2. REST changes API,但AFAIU我应该每隔X秒轮询一次Google服务器。

  3. 这对我来说都不是最佳选择,因为我需要有关gdrive上发生的所有文件系统相关事件的全局通知。还有替代品吗?我知道DropBox supports this

1 个答案:

答案 0 :(得分:0)

如果您的应用只需要收到有关更改的通知,则此blog中建议的更好方法是让您的应用订阅用户驱动器的更改,并在发生更改时收到通知。

假设您的应用托管在具有my-host.com域的服务器上,推送通知应该发送到HTTPS网络挂钩https://my-host.com/notification

String subscriptionId = UUID.randomUUID().toString();
  Channel request = new Channel()
    .setId(subscriptionId)
    .setType("web_hook")
    .setAddress("https://my-host.com/notification");
  drive.changes().watch(request).execute();

有了这个,只要订阅处于有效状态,Google云端硬盘就会在https://my-host.com/notification触发网络勾回调。然后,应用程序可以查询更改源以从上一个同步点赶上:

changes = service.changes().list()
    .setStartChangeId(lastChangeId).execute();

如前所述,如果您有兴趣使用此新功能,请参阅documentation。您可以使用Push Notifications Playground查看推送通知,并在Github查看来源。