2017-01-03 1 views
1

Nous utilisons zapier.com pour connecter de nombreux programmes, mais une fonction dont j'ai besoin est de remplir automatiquement la ville et l'état à partir d'un code postal. Ceci est disponible dans zapier.com comme code d'installation par Zapier Run Javascript. Je n'arrive pas à comprendre cela et toute aide est très appréciée.Zapier.com code postal autofill ville et état

<script type="text/javascript">//<![CDATA[ 
    $(function() { 
    // IMPORTANT: Fill in your client key 
    var clientKey; // Deleted for Stack Overflow 

    var cache = {}; 
    var container = $("#example1"); 
    var errorDiv = container.find("div.text-error"); 

    /** Handle successful response */ 
    function handleResp(data) 
    { 
     // Check for error 
     if (data.error_msg) 
     errorDiv.text(data.error_msg); 
     else if ("city" in data) 
     { 
     // Set city and state 
     container.find("input[name='city']").val(data.city); 
     container.find("input[name='state']").val(data.state); 
     } 
    } 

    // Set up event handlers 
    container.find("input[name='zipcode']").on("keyup change", function() { 
     // Get zip code 
     var zipcode = $(this).val().substring(0, 5); 
     if (zipcode.length == 5 && /^[0-9]+$/.test(zipcode)) 
     { 
     // Clear error 
     errorDiv.empty(); 

     // Check cache 
     if (zipcode in cache) 
     { 
      handleResp(cache[zipcode]); 
     } 
     else 
     { 
      // Build url 
      var url = "https://www.zipcodeapi.com/rest/"+clientKey+"/info.json/" + zipcode + "/radians"; 

      // Make AJAX request 
      $.ajax({ 
      "url": url, 
      "dataType": "json" 
      }).done(function(data) { 
      handleResp(data); 

      // Store in cache 
      cache[zipcode] = data; 
      }).fail(function(data) { 
      if (data.responseText && (json = $.parseJSON(data.responseText))) 
      { 
       // Store in cache 
       cache[zipcode] = json; 

       // Check for error 
       if (json.error_msg) 
       errorDiv.text(json.error_msg); 
      } 
      else 
       errorDiv.text('Request failed.'); 
      }); 
     } 
     } 
    }).trigger("change"); 
     }); 
//]]></script> 

Répondre

0

Il y a un couple de points de confusion ici, la principale étant:

code

par Zapier est pas exécuté "dans le navigateur" (il n'y a pas <script> balises ou Jquery) - il est exécuter dans quelque chose appelé Node.js.

Vous aurez besoin d'aborder le problème tout à fait différemment en conséquence - vraiment regarder les échantillons trouvés dans https://zapier.com/help/code/ et au nœud docs https://nodejs.org/docs/v4.3.2/api/.

2

Il semble que vous essayiez d'utiliser le JavaScript côté client ici. Cela ne fonctionnera pas dans une étape de code Zapier, car il est destiné à être utilisé dans un navigateur (sur une page Web). Pour faire une requête HTTP dans une étape de code Zapier, vous devez utiliser fetch (en voici quelques documentation).

Alternativement, la façon la plus simple d'obtenir les données dont vous avez besoin de cette API est une étape de webhook:

  1. Ajouter une étape à votre Zap
  2. Choisissez Webhooks par Zapier et sélectionnez l'action GET Configurez cette étape comme this. L'étape renverra city/state data que vous pourrez utiliser dans les étapes suivantes
+0

Juan, je ne vous remercierai jamais assez. Même les gens de zapier n'avaient aucune idée d'une suggestion comme celle que vous aviez fournie. Cela va me sauver beaucoup de temps. –