【问题标题】:Using Asana events API for task monitoring使用 Asana 事件 API 进行任务监控
【发布时间】:2015-07-26 15:54:47
【问题描述】:

我正在尝试使用 Asana 事件 API 来跟踪我们的一个项目中的变化,以及更具体的部分之间的任务移动。 我们的工作流程如下:

  1. 我们有一个项目分为多个部分。
  2. 每个部分代表一个 过程中的步骤。完成一个步骤后,将任务移至 下面的部分。
  3. 当给定任务到达特定步骤时,我们希望将其传递给外部系统。它不必是完整的信息 - 基本的东西 + 网址就足够了。

我的想法是使用https://asana.com/developers/api-reference/events 实现基于拉取的机制来获取最近的任务变化。

我的问题是:

  1. Events API 似乎生成了很多信息,但不是有用的信息。在部分之间移动一项任务会生成 3 个事件(2 个“更改”操作,一个“添加”操作标记为“系统”)。在工作期间,许多任务将在许多部分之间移动,但我对一个特定部分感兴趣。如何找到移入该部分的项目?我知道有一个 resource->text 字段,但它给了我类似 moved from X to Y (ProjectName) 之类的信息,这可能是人类可读的消息,将来可能会改变
  2. 根据文档 resource 键应该包含任务数据,但我看到的唯一信息是 idname 这还不够我的情况。是否可以使用事件 API 获取标签?或者任何其他可以让我们对系统中的任务进行分类的数据?
  3. 我可以监听特定部分的事件而不是跟踪整个项目吗?

欢迎提出想法或建议。谢谢

【问题讨论】:

    标签: asana asana-api


    【解决方案1】:

    简而言之:

    1. 是的,请在下面回答。
    2. 是的,请在下面回答。
    3. 很遗憾,部分确实是具有一些额外功能的任务。目前,API 通过任务上的 memberships 字段而不是其他方式表示部分和其中的任务之间的关系。

    我认为这应该可以帮助您实现您的目标。

    假设您有一个项目Ninja Pipeline,其中包含两个部分NoviceExpert。请记住,部分实际上只是名称以 : 字符结尾的任务,其中一些任务可以属于它们。

    事件从孩子“冒泡”到他们的父母;因此,当您将此项目中的Wombat 任务从Novice 部分转换为Expert 时,您将获得3 个事件。从顶层开始往下,它们是:

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

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

    默认情况下,API 中的许多资源都以紧凑形式表示,通常只包括idname。使用input/output options 来扩展对象或选择您需要的特定字段。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多