2016-09-16 4 views
0

Я разработал приложение Python для доступа к GDrive, теперь я хочу получать уведомление в случае, если . Любой файл был изменен на gdrive. В частности, меня интересуют перемещение/переименование, удаление, загрузка и загрузка событий. Я вижу Google предоставить 2 инструмента:Google Диск SDK: узнайте о любом изменении файла

  1. push notifications, но, похоже, это ограничивается сообщать об изменениях для конкретного файла или директории, как указано here.

  2. REST changes API, но AFAIU Я должен опросить сервер google каждые 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(); 

С этим, пока подписка активна, Google Drive будет вызвать обратный вызов веб-крюка на https://my-host.com/notification. Приложение может затем запросить фид изменения, чтобы нагнать с последней точки синхронизации:

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

Как уже говорилось далее, если вы заинтересованы в использовании этой новой функции, пожалуйста, обратитесь к documentation. Вы можете увидеть push-уведомления в действии с помощью Push Notifications Playground и посмотреть источник на Github.

+0

У Push-уведомлений есть 2 номера: 1 они не могут быть использованы для просмотра всех файлов (см. Http://stackoverflow.com/questions/18144094/google-drive-sdk-push-notifications-watch-changes-on -all-files/18151189 # 18151189) 2 они истекают через 1 день (это менее тяжело, поскольку я могу зарегистрироваться снова). –