2017-03-28 23 views
0

私はasana-apiを使用してPOST HTTPリクエストを使用してタスクを作成しようとしていますが、回答として400不良リクエストが発生し続けます。POST HTTPリクエストを使用してAsanaタスクを作成する

私は(GETリクエスト)を使用して、アサナ-APIからデータを取得するために管理が、私は(POSTリクエスト)

私は「要求」モジュールを使用しているとアサナにデータを送信するトラブルを抱えていますAPI呼び出しに

を行うためには、ここでエラーメッセージが表示されます:

`{"errors":[{ 
     "message":"Could not parse request data,invalid JSON", 
     "help":"For more information on API status codes and how to handle them, 
     read the docs on errors: https://asana.com/developers/documentation/getting-started/errors"} 
]}` 

は、ここに私のコードです:

testTask(){ 
    var taskName = "Test Name for a Test Task" 
    var workspaceID = "123456789" 
    var projectID = "123456789" 
    var assigneeID = "123456789" 
    var parentID = null 
    this.createTask(taskName, workspaceID, projectID, assigneeID, parentID) 
} 

createTask(taskName, workspaceID, projectID, assigneeID, parentID){ 
    var token = "0/1234abcd5678efgh9102ijk" 
    var bearerToken = "Bearer " + token 
    var task = { 
     data: { 
     assignee: "me", 
     notes: "test test test test", 
     workspace: workspaceID, 
     name: taskName, 
     projects: [projectID], 
     parent: parentID 
     } 
    } 
    var options = { 
     "method" : "POST", 
     "headers" : {"Authorization": bearerToken}, 
     "contentType": "application/json", 
     "payload" : JSON.stringify(task) 
    } 
    try { 
     var url = "https://app.asana.com/api/1.0/tasks"; 
     request.post(url, options, function optionalCallback(err, httpResponse, body) { 
     if (err) { 
      return console.error('upload failed:', err); 
     } 
      console.log('Upload successful! Server responded with:', body); 
     }); 
    } 
    catch (e) { 
      console.log(e); 
    } 

} 

は、私はまた別の実装しようとした:要求モジュールによって提供されている例に基づいて

createTask(){ 
    var token = "0/1234abcd5678efgh9102ijk" 
    var bearerToken = "Bearer " + token 

    var options = { 
     "method" : "POST", 
     "headers" : {"Authorization": bearerToken}, 
    } 
    try { 
     request.post("https://app.asana.com/api/1.0/tasks?workspace=1234567&projects=765534432&parent=null&name=taskName&assignee=me", options, function optionalCallback(err, httpResponse, body) { 
     if (err) { 
      return console.error('upload failed:', err); 
     } 
      console.log('Upload successful! Server responded with:', body); 
     }); 
    } 
    catch (e) { 
      console.log(e); 
    } 

} 

答えて

1

を、あなたのオプションのオブジェクトがキーとして​​を使用していますが、それはbodyあるべきことが表示されます。

+0

ペイロードを使用しなかった別の実装を追加して私の質問を更新しました。同じエラーが発生しました。 – AziCode

+1

私はこのモジュールに慣れていないので、トラブルシューティングに最適なヘルプではありません。あなたは[Asanaノードクライアントライブラリ](https://github.com/Asana/node-asana)を使ってみましたか?次に、タスクをPOSTするために働くCURL要求の例を示します。 'curl --request POST -H"認可:ベアラ0/c12345 "\ https://app.asana.com/api/1.0/tasks \ -d "workspace" = "12345" \ -d "name" = "テストタスクの作成" – Jeff

+1

POSTリクエストを実行してクエリパラメータにデータを入れることはできません。彼らは体に含まれる必要があります。 "body":JSON.stringify(task) – Mark

関連する問題