2012-04-30 62 views
0

我將以下JSON POST到了asana的「tasks」端點。Asana-無效字段

{ 
    "data": { 
     "options": { 
      "fields": [ 
       "name", 
       "notes" 
      ] 
     }, 
     "workspace": <valid number>, 
     "assignee": <valid number> 
    } 
} 

它每次都給我一個「無效字段」錯誤。我已經通過API讀了幾次,這個JOSN看起來應該如何API。有任何想法嗎?

嘉尚API對於那些你們誰願意提供幫助:Asana API Documentation

+0

你能發佈你的確切的錯誤消息嗎?謝謝。 –

+0

'無效的字段:'是確切的錯誤信息,除了他們還發回我發送給他們的JSON出於某種原因。 – DanRedux

回答

1

(我的體位工作)

「選項」字段是「數據」的兄弟領域,而不是一個兒童。文件中提到了這一點,但也許我們沒有提供清晰的例子來使其更加明顯。

如果你改變你的要求是這樣的:

{ 
    "options": { 
     "fields": [ 
      "name", 
      "notes" 
     ] 
    }, 
    "data": { 
     "workspace": <valid number>, 
     "assignee": <valid number> 
    } 
} 

事情應該工作。

+0

我的JSON與您提供的完全一樣,但我仍然收到無效的字段錯誤。沒有短語被送回。這裏是用PHP聲明的數組,並且JSON編碼的版本看起來與您提供的版本相同。 (''''''')','data'=> array('workspace'=> $ workspace-> id,'assignee' => $ user-> id)))' – DanRedux

+0

我明白了,這個問題可能與您沒有提及的某些方面有關。我們的API接受JSON和表單數據作爲輸入類型,但是您必須適當地設置內容類型。嘗試添加標題:「Content-Type:application/json」 –

+0

工作。奇怪的是,我在查詢'https:// app.asana.com/api/1.0/tasks',並將它傳遞給上面的JSON,但我得到了201回來,根據API是對象創建的成功。我不想創建任何任務,我想查詢所有任務。它在我使用GET時起作用,所以我幾乎認爲POST請求被假定爲發佈內容,並且GET請求正在查詢?我甚至手動將「options-> method」設置爲「GET」,但它仍然創造了一項新任務? – DanRedux