2014-10-29 85 views
1

我是一名自由職業的web開發人員,我在Asana的許多不同工作空間中與很多客戶端合作。由於無法獲得統一的觀點,這使得這是一項繁瑣而難以管理的事情,所以我將自己的小實用程序放在一起,幫助我根據截止日期順序對分配給我的任務進行「超級觀察」。爲了讓我更容易掃描,我需要在任務詳細信息旁邊有項目名稱。如何合併ASANA API的API調用

在我看來,最簡單的方法將是分配給我的所有任務的單個API調用,並一次請求項目名稱,任務名稱,任務ID,到期日期和工作區名稱。

但是,API似乎不允許這種整合類型的請求,所以相反,工作流程就像這樣;

  1. API調用來獲取我所有的工作區
  2. 循環遍歷工作空間,使API調用每一個通過這些製造任務獲得的所有任務
  3. 用PHP這些任務進行排序相應
  4. 循環API調用,以獲得項目名稱每個項目的第一個實例(我緩存數據,因爲我 去,這樣我只撥打電話每一次項目)

我的問題GET當我開始進行API調用以獲取項目詳細信息時,ting是500錯誤。我懷疑我打了每分鐘100個電話的限制,但我仍然遇到錯誤。鑑於此,我正在尋找一種方法來進行包含我需要的所有數據的統一調用,但我似乎無法弄清楚。

任何人都有這方面的一些指導?

回答

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不是我們發送的速率限制代碼 - 這可能是請求本身的問題。你如何請求項目細節?

+0

Thanks @agnoster。能夠定位嵌套字段是非常有用的 - 點符號已經完全逃脫了我。實際上,我採取了維護JSON字典的方式,這些字典可以單獨更新並作爲工作空間和項目的參考。僅供參考,我所有的API調用都使用[Asana API PHP Class](github.com/ajimix/asana-api-php-class/),因此請求應該正確地結構化 - 這500個事件只發生在我打電話給一定數量的任務。 – Phil 2014-10-30 22:14:37