2016-09-16 30 views
0

我開發了一個Python應用程序來訪問GDrive,現在我想通知的情況下,任何文件在gdrive上被更改。 具體而言,我對移動/重命名,移除,下載和上傳活動感興趣。我看到谷歌提供的2個工具:Google Drive SDK:被通知任何文件更改

  1. push notifications,但看起來這僅限於通知特定文件或目錄的變化,概括here

  2. REST changes API,但AFAIU我應該每隔X秒輪詢谷歌服務器。

無的,這是最適合我的,因爲我需要有關GDrive的發生的所有文件系統相關的事件,全球通知。有替代品嗎?我知道DropBox supports this

回答

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(); 

有了這個,只要訂閱是活躍的,谷歌驅動器將在https://my-host.com/notification觸發一個web-hook回調。然後該應用程序可以查詢變化飼料從上次同步點趕上:

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

中進一步提到,如果你有興趣使用這項新功能,請參閱documentation。您可以通過Push Notifications Playground查看推送通知,並在Github查看源代碼。

+0

推送通知有兩個問題:1它們不能用於觀看所有文件(請參閱:http://stackoverflow.com/questions/18144094/google-drive-sdk-push-notifications-watch-changes-on -all-files/18151189#18151189)2它們在1天后過期(這是不太嚴重的,因爲我可以再次註冊)。 –

相關問題