2017-06-02 2 views
0

schreiben Ich versuche mit der Asana API zu arbeiten, da ich React und Redux lerne. Ich war in der Lage, Daten von der Asana API mit fetch() gerade gut bis jetzt zu erhalten, aber ich habe Probleme beim Posten einer Aufgabe.Einen Asana Task mit fetch

Hier ist der Code Ich verwende:

const options = (type, data) => { 
 
    const defaultHeaders = { 
 
     'Authorization': `Bearer ${apiKey}`, 
 
     'Asana-Fast-Api': 'true', 
 
     } 
 
    switch(type) { 
 
    case 'get': 
 
     return { 
 
     headers: defaultHeaders, 
 
     } 
 
    case 'post': 
 
     const body = JSON.stringify(data) 
 
     console.log(body); 
 
     return { 
 
     method: 'POST', 
 
     headers: defaultHeaders, 
 
     contentType: 'application/json', 
 
     body: body, 
 
     } 
 
    default: 
 
     return { 
 
     headers: defaultHeaders, 
 
     } 
 
    } 
 
}; 
 

 
const asanaUrl = (props) => { 
 
    const numOfProps = props.length; 
 
    switch (numOfProps) { 
 
    case 3: 
 
     return `https://app.asana.com/api/1.0/${props[0]}/${props[1]}?${props[2]}` 
 
    case 2: 
 
     return `https://app.asana.com/api/1.0/${props[0]}?${props[1]}` 
 
    case 1: 
 
     return `https://app.asana.com/api/1.0/${props[0]}` 
 
    default: 
 
     return console.log(props) 
 
    } 
 
} 
 

 
export const asanaPost = (props, data) => { 
 
    return fetch(asanaUrl(props), options('post', data)) 
 
    .then(response => response.json()) 
 
}

in der Konsole sehe ich die Rückkehr aus dem console.log, die die JSON zeigt, dass ich in meinen Körper bin das Senden Schlüssel:

{"assignee":22800770039251,"name":"test","notes":"test"}

und die folgenden Fehler

Failed to load resource: the server responded with a status of 400 (Bad Request)

Die URL erscheint, korrekt zu sein: https://app.asana.com/api/1.0/tasks?workspace=31542879721131

Die Fehlermeldung lautet:

"Must specify exactly one of project, tag, or assignee + workspace"

Es scheint keine Rolle zu, welche Felder ich im Körper enthalten (einschließlich Ein Projekt führte zu dem gleichen Fehler), was mich vermuten lässt, dass etwas anderes im Gange ist und die Asana-API den Körper nicht erfasst oder nicht in der Lage ist, sie mit der Einrichtung zu interpretieren.

Danke, dass Sie mir dabei geholfen haben!

Antwort

1

Die api url ich benutze, ist https://app.asana.com/api/1.0/tasks?opt_fields=html_notes

ich im Körper auch projects als Schlüssel und einen String-Wert übergeben.

Ich verwende 'Asana-Fast-Api': 'true' nicht in den Headern