使用Asana事件API进行任务监控

时间:2015-05-14 21:10:47

标签: asana asana-api

我尝试使用Asana事件API来跟踪我们的某个项目中的更改,更多特定的部分之间的任务移动。 我们的工作流程如下:

  1. 我们有一个项目分为几个部分。
  2. 每个部分代表一个 在这个过程中的一步。完成一个步骤后,任务将移至 以下部分。
  3. 当给定任务到达特定步骤时,我们希望将其传递给外部系统。它不一定是完整的信息 - 基本的东西+网址就够了。
  4. 我的想法是使用https://asana.com/developers/api-reference/events来实现基于拉取的机制,以获取最近的任务变化。

    我的问题是:

    1. 事件API似乎生成了大量信息,但不是有用信息。在部分之间移动一个单独的任务会生成3个事件(2"已更改"操作,1个"添加"操作标记为"系统")。在工作期间,许多任务将在许多部分之间移动,但我对一个特定部分感兴趣。如何找到移动到该部分的项目?我知道那是一个 资源 - >文字字段,但它提供了类似从X移动到Y(ProjectName)的内容,这可能是将来可能会更改的人类可读消息
    2. 根据文档,资源键应包含任务数据,但我看到的唯一信息是 ID 名称,这对于我的情况。是否可以使用事件API来控制标签?还是允许我们对系统中的任务进行分类的任何其他数据?
    3. 我可以收听特定部分的活动,而不是跟踪整个项目吗?
    4. 欢迎提出意见或建议。感谢

1 个答案:

答案 0 :(得分:0)

简而言之:

  1. 是的,请在下面回答。
  2. 是的,请在下面回答。
  3. 不幸的是,部分实际上是具有一些额外功能的任务。目前,API通过任务上的memberships字段表示部分与其中的任务之间的关系,而不是其他方式。
  4. 我认为这可以帮助你实现所需的目标。

    我们假设您有一个项目Ninja Pipeline,其中有2个部分Novice& Expert。请记住,部分实际上只是名称以:字符结尾的任务,其中有一些额外的功能可以归属于它们。

    活动"冒泡"从孩子到父母;因此,当您在此项目中的Wombat任务形成Novice部分到Expert时,您将获得3个事件。从顶层开始,它们是:

    • Ninja Pipeline项目已更改。
    • Wombat任务已更改。
    • 故事已添加到Wombat任务中。

    对于您的用例,最有趣的事件是关于任务更改的第二个事件。您真正想知道的数据现在是任务改变了任务上memberships字段的值。如果它现在是您感兴趣的部分的成员,请采取措施,否则忽略。

    默认情况下,API中的许多资源都以紧凑的形式表示,通常只包含id& name。使用input/output options以展开对象或选择所需的特定字段。

    在这种情况下,最好的办法是在项目中轮询事件时包含查询参数opt_expand=resource。这应该扩展有效负载中的所有resource个对象。对于type: "task"的事件,如果resource.memberships[0].section.id=<id_of_the_section>为真,请采取措施,否则忽略。