2014-04-02 26 views
0

在框文檔中,它指出事件TAG_ITEM_CREATE發生在'標籤已添加到文件或文件夾'。有沒有什麼方法可以找出標籤添加到哪個文件夾/文件,而無需迭代它們?box.com TAG_ITEM_CREATE事件

回答

0

如果你是fetching events for a Box enterprise你可以讓Box執行服務器端事件過濾。但是,當fetching events for a standard Box account您必須在您的應用程序中進行篩選。參數next_stream_position可用於爲您收到的事件設置較低的時間限制,這可以顯着減少必須排序的元數據量。

編輯:回答評論的問題。

Q:不知道事件是如何過濾有助於我工作了哪個文件夾已被標記?

這回給你看起來像這樣的event對象:

{ 
    "next_stream_position":1348790499819, 
    "entries":[ 
     { 
     "event_type":"TAG_ITEM_CREATE", 
     "source":{ 
      "type":"folder", 
      "id":"11446498", 
     ... more event info ... 
     } 
     }, 
     ... more events ... 
    ] 
} 

在你的應用程序,你可以找他們event_typeTAG_ITEM_CREATE這些事件。然後,您可以使用source來確定標記了哪個特定資源。

Q:你是說我可以問,因爲一個給定的TAG_ITEM_CREATE事件所有文件夾改變了嗎?

不需要。將'next_stream_position`屬性視爲時間戳的代理。你可以用它來告訴Box,「告訴我這個'位置'後發生的所有事件」。但是,這仍然會給你發生的所有類型事件。您必須在應用程序中選擇感興趣的事件。

這是在企業網和麪向用戶的API大的區別之一。在企業中,您可以告訴Box,「我希望瞭解昨天到今天在企業中發生的所有TAG_ITEM_CREATE事件。」在面向用戶的API中,您可以最好地分辨Box是否有效,「我希望從昨天開始就在此用戶框中發生的所有事件的信息。」

+0

不知道過濾事件如何幫助我解決_which_文件夾已被標記?你是否說我可以要求自給定TAG_ITEM_CREATE事件後更改的所有文件夾? – PaulW

+0

我正在使用Java SDK,並且源項目在事件上始終爲空。這在版本2和最新的代碼中發生。不確定這是否是API或Java SDK中的錯誤。我會做一些調查和更新。感謝您清理預期的行爲 - 您的初始答案現在更有意義。 – PaulW

+0

啊!對不起,最初的困惑。您可以使用像[Fiddler](http://www.fiddler2.com/fiddler2/)(Win)或[Charles](http://www.charlesproxy.com)這樣的工具捕獲您和Box之間的一些HTTPS流量/) (蘋果電腦)。這將幫助您確定Box是否向您發送期望的數據。 –