2017-09-01 2 views
0

J'ai 2 zaps. D'abord se termine par Code by Zapier bloc, où je parse des informations d'entrée des étapes précédentes obtenir tableau avec des données par exemple:comment déclencher le webhook à partir du code zapier

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

alors dans une boucle que je traverse, créez corps demandes

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; 
}; 

Je fais appelle HTTP avec Fetch API pour toutes les demandes:

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 est la fonction de Zapier pour gérer les résultats asynchrones.

Ce code est exécuté avec succès et je peux voir les résultats:

enter image description here

Mais ces demandes ne sont pas enregistrés dans webhook (adresse est correcte revérifié..)

Quelle peut être la raison pour ça? Comment réparer mon code pour faire des requêtes activer webhook?

Répondre

1

Il se peut que vous n'ayez pas un élément body dans votre options qui est envoyé avec la méthode fetch. The documentation montre cela comme POST exemple: { method: 'POST', body: 'a=1' }, alors peut-être essayer de faire exactement comme ça.

+0

Oui, c'était le problème. J'ai vu quelque part que l'objet d'information d'extraction possédait la propriété 'data', ainsi a fait cette faute de frappe. – zmii