Использование API событий Asana для мониторинга задач

Я пытаюсь использовать API событий Asana для отслеживания изменений в одном из наших проектов, более точного перемещения задач между разделами. Наш рабочий процесс выглядит следующим образом:

  1. У нас есть проект, разделенный на разделы.
  2. Каждый раздел представляет собой шаг в процессе. Когда один шаг сделан, задача перемещается в раздел ниже.
  3. Когда данная задача достигает определенного шага, мы хотим передать ее внешней системе. Это не должно быть полной информацией - основных вещей + URL будет достаточно.

Моя идея состояла в том, чтобы использовать https://asana.com/developers/api-reference/events для реализации механизма на основе извлечения для получения последних изменений в задачах.

Мои проблемы:

  1. Кажется, что API событий генерирует много информации, но не полезной. Перемещение одной задачи между разделами генерирует 3 события (2 "измененных" действия, одно "добавленное" действие, помеченное как "система"). Во время работы многие задачи будут перемещаться между многими разделами, но меня интересует один из конкретных разделов. Как я могу найти предметы, перемещенные в этот раздел? Я знаю, что есть поле resource->text, но оно дает мне что-то вроде перемещения из X в Y (ProjectName), которое, вероятно, является читаемым человеком сообщением, которое может измениться в будущем.
  2. Согласно документации, ключ ресурса должен содержать данные задачи, но единственная информация, которую я вижу, это идентификатор и имя, которых недостаточно для моего случая. Можно ли закрепить теги с помощью API событий? Или любые другие данные, которые позволили бы нам классифицировать задачи в нашей системе?
  3. Могу ли я прослушивать события для определенного раздела вместо отслеживания всего проекта?

Идеи или предложения приветствуются. Спасибо

1 ответ

Короче:

  1. Да, ответьте ниже.
  2. Да, ответьте ниже.
  3. К сожалению, нет, разделы - это действительно задачи с небольшим количеством дополнительной функциональности. В настоящее время API представляет отношения между разделами и задачами в них через memberships ставить задачу, а не наоборот.

Это должно помочь вам достичь того, что вы ищете, я думаю.

Допустим, у вас есть проект Ninja Pipeline с 2 секциями Novice & Expert, Имейте в виду, что разделы - это на самом деле просто задачи, имя которых заканчивается на : персонаж с несколькими дополнительными функциями в этих задачах может принадлежать им.

События "всплывают" от детей к их родителям; поэтому, когда вы Wombat Задача в этом проекте формы Novice раздел к Expert Вы получаете 3 события. Начиная с верхнего уровня, спускаясь, они:

  • Ninja Pipeline проект изменился.
  • Wombat задача изменилась.
  • История была добавлена ​​к Wombat задача.

Для вашего случая использования наиболее интересным является второе событие об изменении задачи. Данные, которые вы действительно хотите знать, - это то, что задача изменила значение memberships поле по заданию. Если он сейчас входит в интересующий вас раздел, примите меры, в противном случае игнорируйте.

По умолчанию многие ресурсы в API представлены в компактной форме, которая обычно включает только id & name, Используйте параметры ввода / вывода для расширения объектов или выбора нужных вам полей.

В этом случае лучше всего включить параметр запроса opt_expand=resource при опросе событий по проекту. Это должно расширить все resource объекты в полезной нагрузке. Для событий type: "task" тогда если resource.memberships[0].section.id=<id_of_the_section> верно, действуй, иначе игнорируй.

Другие вопросы по тегам