2017-09-01 2 views
0

auslösen Ich habe 2 Zaps. Zunächst endet mit Code by Zapier Block, wo ich die Eingangsinformationen von vorherigen Schritten analysieren mit Daten zB immer Array:Wie Webhook von Zapier-Code

var elements = [{id: 12, calculatedValue: 13},{id: 13, calculatedValue: 'red'}] 

dann in einer Schleife ich es durchqueren, erzeugen Anfragen Körper

var options = { 
     "url": "https://hooks.zapier.com/hooks/catch/xxxxxx/xxxxxx/", 
     "method": "POST" 
    }, 
    requests = elements.map(mapDataToSettings); 

function mapDataToSettings(elem) { 
    var settings = Object.assign({}, options); 
    settings.data = JSON.stringify(elem); 
    return settings; 
}; 

Dann mache ich HTTP-Aufrufe mit Fetch API für alle jene Anfragen:

Promise.all(requests.map(grabContent)) 
.then(function(data){ callback(null, {requestsMade: data});}); 

function grabContent(options) { 
    return fetch(options.url, options) 
    .then(function(res) {return res.json();}); 
}; 

NBcallback ist die Funktion von Zapier, asynchrone Ergebnisse zu verarbeiten.

Dieser Code erfolgreich ausgeführt wird, und ich kann Ergebnisse sehen:

enter image description here

Aber diese Anforderungen werden nicht in Webhook registriert (Adresse korrekt geprüft verdoppeln..)

Was kann der Grund sein dafür? Wie kann ich meinen Code reparieren, um Anfragen zu aktivieren?

Antwort

1

Es könnte sein, dass Sie keinen body Artikel in Ihrem options haben, der mit der fetch Methode gesendet wird. The documentation zeigt dies als POST Beispiel: { method: 'POST', body: 'a=1' }, also vielleicht versuchen, es genau so zu machen.

+0

Ja, das war das Problem. Ich habe irgendwo gesehen, dass das Holen Informationsobjekt hatte "Daten" -Eigenschaft, so dass dieser Tippfehler gemacht. – zmii