Использование API событий Asana для мониторинга задач
Я пытаюсь использовать API событий Asana для отслеживания изменений в одном из наших проектов, более точного перемещения задач между разделами. Наш рабочий процесс выглядит следующим образом:
- У нас есть проект, разделенный на разделы.
- Каждый раздел представляет собой шаг в процессе. Когда один шаг сделан, задача перемещается в раздел ниже.
- Когда данная задача достигает определенного шага, мы хотим передать ее внешней системе. Это не должно быть полной информацией - основных вещей + URL будет достаточно.
Моя идея состояла в том, чтобы использовать https://asana.com/developers/api-reference/events для реализации механизма на основе извлечения для получения последних изменений в задачах.
Мои проблемы:
- Кажется, что API событий генерирует много информации, но не полезной. Перемещение одной задачи между разделами генерирует 3 события (2 "измененных" действия, одно "добавленное" действие, помеченное как "система"). Во время работы многие задачи будут перемещаться между многими разделами, но меня интересует один из конкретных разделов. Как я могу найти предметы, перемещенные в этот раздел? Я знаю, что есть поле resource->text, но оно дает мне что-то вроде перемещения из X в Y (ProjectName), которое, вероятно, является читаемым человеком сообщением, которое может измениться в будущем.
- Согласно документации, ключ ресурса должен содержать данные задачи, но единственная информация, которую я вижу, это идентификатор и имя, которых недостаточно для моего случая. Можно ли закрепить теги с помощью API событий? Или любые другие данные, которые позволили бы нам классифицировать задачи в нашей системе?
- Могу ли я прослушивать события для определенного раздела вместо отслеживания всего проекта?
Идеи или предложения приветствуются. Спасибо
1 ответ
Короче:
- Да, ответьте ниже.
- Да, ответьте ниже.
- К сожалению, нет, разделы - это действительно задачи с небольшим количеством дополнительной функциональности. В настоящее время 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>
верно, действуй, иначе игнорируй.