如何合并ASANA API的API调用

时间:2014-10-29 07:42:24

标签: api asana

我是一名自由网络开发人员,我在Asana的许多不同工作区与很多客户合作。无法获得统一视图使得管理成为一项繁琐而困难的事情,因此我将自己的小实用程序放在一起,以帮助我按照截止日期的顺序获得分配给我的任务的“超级视图”。为了使我更容易扫描,我需要在任务详细信息旁边有项目名称。

在我看来,最简单的方法是对分配给我的所有任务进行单个API调用,并同时请求项目名称,任务名称,任务ID,截止日期和工作区名称。

然而,API似乎不允许这种统一类型的请求,因此,工作流程就是这样的;

  1. API调用以获取我的所有工作区
  2. 遍历工作区,为每个工作区调用API以获取所有任务
  3. 使用PHP相应地对这些任务进行排序
  4. 遍历那些为每个项目的第一个实例进行API调用的任务,以获取项目名称(我将数据缓存为I 这样我每个项目只打一次电话)
  5. 当我开始进行API调用以获取项目详细信息时,我遇到的问题是500错误。我怀疑我是在达到每分钟100次通话限制,但我仍然得到了错误。鉴于此,我正在寻找一种方法来进行包含我需要的所有数据的整合调用,但我似乎无法弄明白。

    有人对此有一些指导吗?

1 个答案:

答案 0 :(得分:0)

好消息!我们实际上支持Input/Output options,允许您指定所需的字段,包括嵌套字段。因此,虽然您仍然需要为每个工作区单独调用,但您可以执行以下操作:

workspaces = GET /workspaces
for id in workspaces
  tasks = GET /workspaces/:id/tasks?assignee=me&opt_fields=name,due_on,projects.name

(如果您只对未完成的任务感兴趣,可以添加&completed_since=now - 或者如果您想要不完整且最近完成的任务,请&completed_since=...添加时间戳,以排除任何任务之前完成了)

此外,500不是我们发送的速率限制代码 - 它可能是请求本身的问题。您是如何申请项目详情的?