Zapier.com автозаполнение почтового индекса города и штата

Мы используем zapier.com для подключения многих программ, но одна функция, которая мне нужна, - это автозаполнение города и штата с помощью почтового индекса. Это доступно на zapier.com как код установки от Zapier Run Javascript. Я не могу понять этого, и любая помощь очень ценится.

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

person Simple Automation    schedule 03.01.2017    source источник


Ответы (2)


Похоже, здесь вы пытаетесь использовать клиентский JavaScript. Это не будет работать на шаге кода Zapier, потому что он предназначен для использования в браузере (на веб-странице). Чтобы сделать HTTP-запрос на шаге кода Zapier, вы захотите использовать fetch (вот некоторые документацию по этому поводу).

В качестве альтернативы, самый простой способ получить нужные данные из этого API - выполнить шаг Webhook:

  1. Добавьте ступеньку в свой Zap
  2. Выберите Webhooks by Zapier и выберите действие GET.
  3. Настройте этот шаг, как это. На этом шаге будут возвращены данные о городе / штате, которые можно использовать на последующих шагах.
person Juan Vazquez    schedule 03.01.2017
comment
Хуан, я не могу тебя отблагодарить. Даже сотрудники zapier понятия не имели о таком предложении, как вы. Это сэкономит мне так много времени. - person Simple Automation; 04.01.2017

Здесь есть пара недоразумений, главная из которых:

Код Zapier не запускается «в браузере» (нет тегов <script> или JQuery) - он запускается в чем-то под названием Node.js.

В результате вам придется подойти к проблеме совершенно по-другому - обязательно взгляните на образцы, найденные в https://zapier.com/help/code/ и в документации по узлу https://nodejs.org/docs/v4.3.2/api/.

person Bryan Helmig    schedule 03.01.2017