box.com TAG_ITEM_CREATE событие

В документах коробки указано, что событие TAG_ITEM_CREATE происходит, когда «Тег был добавлен в файл или папку». Есть ли способ узнать, к какой папке/файлу был добавлен тег, не повторяя их все?


person PaulW    schedule 02.04.2014    source источник


Ответы (1)


Если вы выбираете события для предприятия Box вы можете заставить Box выполнять фильтрацию событий на стороне сервера. Однако при выборе событий для стандартной учетной записи Box вы должны сделать фильтрацию в своем приложении. Параметр next_stream_position можно использовать для установки более низкой временной границы для получаемых вами событий, что может значительно сократить объем метаданных, которые необходимо отсортировать.

EDIT: ответы на вопросы из комментариев.

В: Не знаете, как фильтрация событий помогает определить, какая папка была отмечена тегом?

Возвращаемый вам объект event будет выглядеть следующим образом:

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

В вашем приложении вы можете искать те события, у которых event_type равно TAG_ITEM_CREATE. Затем вы можете использовать source, чтобы определить, какой конкретный ресурс был помечен.

В: Вы хотите сказать, что я могу запросить все папки, измененные после данного события TAG_ITEM_CREATE?

Нет. Воспринимайте свойство next_stream_position как прокси для метки времени. Вы можете использовать его, чтобы сказать Box: «Расскажи мне обо всех событиях, которые произошли после этой «позиции» во времени». Но это все равно даст вам все типы произошедших событий. Вам нужно будет выбрать события, представляющие интерес в вашем приложении.

Это одно из больших различий в корпоративных и пользовательских API. На предприятии вы можете сказать Box: «Мне нужна информация обо всех событиях TAG_ITEM_CREATE, которые произошли на предприятии между вчера и сегодня». В пользовательском API лучшее, что вы можете сказать Box, это: «Мне нужна информация обо всех событиях, которые произошли в ящике этого пользователя со вчерашнего дня».

person John Hoerr    schedule 02.04.2014
comment
Не знаю, как фильтрация событий помогает определить, какая папка была отмечена тегом? Вы говорите, что я могу запросить все папки, измененные с момента данного события TAG_ITEM_CREATE? - person PaulW; 03.04.2014
comment
Я использую Java SDK, и исходный элемент всегда имеет значение null в событии. Это происходит в версии 2 и последнем коде. Не уверен, что это ошибка в API или Java SDK. Я проведу небольшое расследование и обновлю информацию. Спасибо за прояснение ожидаемого поведения - ваш первоначальный ответ теперь имеет гораздо больше смысла. - person PaulW; 04.04.2014
comment
Ах! Извините за первоначальную путаницу. Вы можете перехватить часть HTTPS-трафика между вами и Box с помощью такого инструмента, как Fiddler (Win) или Чарльз (Mac). Это поможет вам определить, отправляет ли Box ожидаемые данные. - person John Hoerr; 04.04.2014
comment
Как я и подозревал, API не возвращает источник с событием: {"chunk_size":1,"next_stream_position":1396624522869,"entries":[{"type":"event","event_id":"45d0ec20a09b0a606119b99fe574b6b05b328b5f","created_by":{"type":"user","id":"210999093","name":"me","login":"[email protected]"},"created_at":"2014-04-04T08:14:58-07:00","recorded_at":"2014-04-04T08:14:59-07:00","event_type":"TAG_ITEM_CREATE","session_id":"1433097989533eac15fffff","source":null}]} - person PaulW; 04.04.2014
comment
По этой проблеме был создан тикет (# 568353) - к сожалению, вы не можете просмотреть ход выполнения - из-за другой ошибки в системе тикетов :-( - person PaulW; 23.04.2014