Dropboxには、ファイルが変更されたとき、つまり新しいアップロードの到着やファイルが変更されたときに通知する方法がありますか?.
Kannanが指摘するように、ポーリングやRSSよりも優れた /delta
と呼ばれる新しいAPIエンドポイントがあります。
/longpoll_delta
APIエンドポイントと組み合わせて使用することもできます:
A long-poll endpoint to wait for changes on an account. In conjunction
with /delta, this call gives you a low-latency way to monitor an account
for file changes.
まだポーリングする必要がありますが、_ /delta
と呼ばれる比較的新しいAPIエンドポイントがあり、/metadata
エンドポイントよりもはるかに効率的にポーリングできます。
RSSフィードを使用するよりも優れています。
Dropboxが正式にWebhookを提供 https://www.dropbox.com/developers/blog/90/announcing-dropbox-webhooks
Dropboxが最近発表したWebHooks!
私たちの手助けに興味がある場合は、クリックして情報を入力してください。ご連絡いたします。
ハッピードロップボックス!
この差分APIを呼び出して同期をとることができます
Dropboxがインストールされたコンピューターが常にオンになっている場合は、Dropboxが変更通知をポップアップするたびに実行するスクリプトを設定できます。そのスクリプトは、RSS(または/ delta API)を使用して変更ログを取得し、目的のファイル/ディレクトリが変更された場合は通知を送信します。
Macでは、DropboxがGrowlに通知を送信し、Growlにスクリプトを実行するように指示できます。 Windowsでは、 gTraySpy のようなものを使用して、システムトレイで通知を監視する必要があります。 Windows Balloons プラグインをインストールすると、Growl for Windowsはこれを実行できます。
変更が発生したときにスクリプトを実行できる限り、変更ログを解析し、特定のアイテムが変更されたときにアクションを実行するだけです。
Dropboxには、デルタ用の新しい長いポーリングエンドポイントがあります。
https://www.dropbox.com/developers/blog/63/low-latency-notification-of-dropbox-file-changes
Dropboxのdelta APIは、変更されたすべてのファイルの詳細のリストを取得するために使用されますが、Webhookは、変更(ファイルの変更、追加、または削除)について通知を受けるために必要なものです
有効をクリックすると、ドロップボックスは入力したリンクにリクエストを送信し、GETリクエストに応答するかどうかを確認します。リンクがそれに応答することを確認する必要があります。 PythonおよびFlaskフレームが機能する場合、次の2行のコードで十分です。
@app.route('/webhook', methods=['GET'])
def verify():
'''Respond to the webhook verification (GET request) by echoing back the challenge parameter.'''
return request.args.get('challenge')
これで、Dropboxに変更が加えられるたびにPOST上記のリンクに通知されます。通知を適切に処理してください。:)