2013-08-09 8 views
8

最近リリースされたプッシュ通知サービスは非常にクールで、以前は必要だったポーリングよりも大幅に改善されています。GoogleドライブSDKプッシュ通知 - すべてのファイルの変更を監視しますか?

ドライブの共有フォルダにあるすべてのファイルを有効にする方法はありますか?私たちはDrive monitoring toolに取り組んでいます。これはすべての変更の一覧を保持し、エンタープライズDriveフォルダ全体のレポートを可能にします。

変更フィードの新しいオブジェクトに関する通知を使用できることにご注意ください。残念ながら、が変更リソースから変更されたを検出することができません。

ファイルリソースを監視するときに、ファイルに関する変更(親、権限、メタデータなど)を知らせる通知を受け取ることができます。これは素晴らしいですが、ドライブ内のすべてのファイルに対してプッシュ通知ハンドラを登録することはできないようです。ドキュメントには、常にfileIdを提供する必要があると書かれています。これは、私たちのシナリオでは何百万ものファイルの視聴要求をすることを意味します(今はPush APIチャンネルをそれぞれ更新することは言及していません)。

変更通知を使用して手動で変更されたものを検出するより適切な方法を知っていますか(これはかなりのAPI呼び出しであり、やや遅いです)。

答えて

8

ロングストーリーショート、

プッシュ通知は、ファイルと変更の監視のみをサポートしています。ご存じのとおり、Googleドライブのフォルダは特別なmimeTypeを持つファイルです。つまり、Files.Watch()要求をフォルダに作成することで、特定のフォルダを監視することができます。ただし、直接的な子どもたちの変化を再帰的に伝えるのではなく、おそらくあなたが望むものではないでしょう。

すべてのファイルのメタデータのコピーをアプリケーションに作成し、変更が発生したときに比較するのが最善の方法です。私はこれがあまり効率的ではないことを知っていますが、今のところこれがあなたがこの目標を達成できる唯一の方法です。

あなたが望む機能が作成されるかどうかは、あなたが私に尋ねるなら、そうではありません。プッシュ通知はドライブAPIだけではありません。すべてのGoogle APIがすべてのAPIリソースを監視し、その変更を検出できるように設計されています。基本的に、Files.Watch()リクエストを作成すると、Files.get()の結果のコピーが保持され、何か変更があったときに通知されます。これが、Files.watchがより多くの有用な詳細を持つ理由です。変更の場合は、Changes.list()に変更があるときはいつでも通知します。このため、現在のところ、変更リソースが実行できるものよりも優れたものを教えてくれるわけではありません。そのデザインから、あなたが望む機能がDrive APIに追加されるとは思わない。

+0

フィードバックありがとうございます。それは私が恐れていることです。心配しないで、私たちは自分自身の変化を検出することに固執します。 – xaralis

関連する問題