Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何整合ASANA API的API调用_Api_Asana - Fatal编程技术网

如何整合ASANA API的API调用

如何整合ASANA API的API调用,api,asana,Api,Asana,我是一名自由网络开发人员,在Asana的许多不同工作区与许多客户合作。无法获得整合视图使这成为一件乏味且难以管理的事情,因此我正在整合自己的小工具,以帮助我获得按到期日顺序分配给我的任务的“超级视图”。为了便于扫描,我需要将项目名称放在任务详细信息的旁边 在我看来,最简单的方法是对分配给我的所有任务进行单个API调用,并同时请求项目名称、任务名称、任务id、截止日期和工作区名称 然而,API似乎不允许这种整合类型的请求,因此,工作流是这样的 API调用以获取我的所有工作区 循环遍历工作区,为每个

我是一名自由网络开发人员,在Asana的许多不同工作区与许多客户合作。无法获得整合视图使这成为一件乏味且难以管理的事情,因此我正在整合自己的小工具,以帮助我获得按到期日顺序分配给我的任务的“超级视图”。为了便于扫描,我需要将项目名称放在任务详细信息的旁边

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

然而,API似乎不允许这种整合类型的请求,因此,工作流是这样的

API调用以获取我的所有工作区 循环遍历工作区,为每个工作区调用API以获取所有任务 使用PHP对这些任务进行相应的排序 循环执行这些任务,对每个项目的第一个实例进行API调用,以获取项目名称,同时缓存数据 这样我每个项目只打一次电话 我遇到的问题是,当我开始进行API调用以获取项目详细信息时,出现了500个错误。我怀疑我是否达到了每分钟100个电话的上限,但我仍然会犯错误。有鉴于此,我正在寻找一种方法来进行整合调用,该调用包含我需要的所有数据,但我似乎无法找到它


有人对此有什么指导吗?

好消息!实际上,我们确实支持指定所需的字段,包括嵌套字段。因此,尽管您仍然需要对每个工作区分别进行调用,但您可以执行以下操作:

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不是我们发送的速率限制代码——这可能是请求本身的问题。您是如何要求项目详细信息的?

谢谢@agnoster。能够以嵌套字段为目标是非常有帮助的——我完全没有想到点符号。实际上,我已经求助于维护JSON字典,这些字典可以单独更新,并充当对工作区和项目的引用。仅供参考,我所有的API调用都使用了[Asana API PHP Class]github.com/ajimix/Asana-API-PHP-Class/,因此请求的结构应该是正确的——只有在我调用了一定数量的任务之后才会出现500次。