Tengo un sitio web donde se implementa el complemento jQuery.LiveAddress, pero SmartyStreets lo eliminó por completo en 2014.
https://www.smartystreets.com/archive/jquery-plugin/website/configure
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script src="//d79i1fxsrar4t.cloudfront.net/jquery.liveaddress/5.2/jquery.liveaddress.min.js"></script> <script>var liveaddress = $.LiveAddress({ key: "YOUR_WEBSITE_KEY_HERE", debug: true, target: "US|INTERNATIONAL", addresses: [{ address1: '#street-address', locality: '#city', administrative_area: '#state', postal_code: '#zip', country: '#country' }] }); </script>Ahora hay un SDK de JavaScript: https://www.smartystreets.com/docs/sdk/javascript
const SmartyStreetsSDK = require("smartystreets-javascript-sdk"); const SmartyStreetsCore = SmartyStreetsSDK.core; const Lookup = SmartyStreetsSDK.usStreet.Lookup; // for Server-to-server requests, use this code: // let authId = process.env.SMARTY_AUTH_ID; // let authToken = process.env.SMARTY_AUTH_TOKEN; // const credentials = new SmartyStreetsCore.StaticCredentials(authId, authToken); // for client-side requests (browser/mobile), use this code: let key = process.env.SMARTY_WEBSITE_KEY; const credentials = new SmartyStreetsCore.SharedCredentials(key);Dice "para solicitudes del lado del cliente (navegador/móvil), use este código", pero ¿tengo razón al suponer que no es posible hacer que este código funcione como JavaScript del navegador? ¿No necesitaría estar ejecutando el nodo como un servicio en mi servidor para usar este código?
El ejemplo de código del lado del cliente se puede usar en el navegador, no solo en node. Deberá almacenar la clave de su sitio web de una manera diferente ya que el navegador no tiene acceso a process.env . Puede almacenar la clave del sitio web en texto sin formato aquí, ya que estará vinculada a su nombre de host.
Deberá usar algún tipo de biblioteca o paquete JS para procesar la declaración requerida que ve en la línea 1. También puede importar el SDK si eso es lo que funciona mejor para su configuración, por ejemplo
import SmartyStreetsSDK from "smartystreets-javascript-sdk"
Algo a tener en cuenta con el uso del SDK frente al complemento jQuery es que el SDK no proporciona elementos de interfaz de usuario en la página. Es menos una caída en la solución que el complemento jQuery. Deberá diseñar y crear sus propios elementos de interfaz de usuario para que el usuario interactúe.
descargo de responsabilidad: trabajo para Smarty (anteriormente SmartyStreets)
Me encontré con este mismo problema y, lamentablemente, Smarty Streets decidió dificultar a los usuarios la implementación de su producto.
En mi búsqueda encontré este violín, no tiene todas las funciones que tenía el complemento jquery, pero es un buen lugar para comenzar que no requiere crear su propia interfaz de usuario de sugerencias.
<script async src="//jsfiddle.net/smartystreets/uptgh7c8/embed/"></script>El archivo clave que me faltaba era el archivo browserify.js en el SDK de JavaScript de SmartyStreets.
npm install smartystreets-javascript-sdk --save-dev en el directorio raíz de su proyectonode_modules/smartystreets-javascript-sdknpm install en este directoriorm -rf dist && node browserify.js (el script fallará si existe la carpeta dist)Traté de escribir una tarea gruñida para tomar el SDK de SmartyStreets y actualizarlo automáticamente, navegarlo e implementarlo junto con el resto de nuestro sitio web, pero resultó ser demasiado complicado con las limitaciones de tiempo dadas. Si alguien más escribe una tarea grunt para esto, ¡comparta!